我想在后台运行我的节点应用程序,并使用&&同时卷曲。
node app.js &;curl localhost
我尝试了另一个
node app.js & && curl localhost
但两者都不起作用
你可能想要
echo first && echo second && echo third & wait
给你输出(类似于)
[1] 4242
first
second
third
[1]+ Done
最后一个&
将整个先前的命令放在管道/作业中。该作业由使用shell布尔表达式链接在一起的三个命令组成。如果其中之一返回false,则应终止链。但是它们都将在后台运行。
在后台运行第一个程序而在前台运行第二个程序的问题是,第二个命令不知道第一个命令是否成功完成。当您将程序置于后台时,除非无法从头开始执行该程序,否则其状态将为0 。因此,以下内容实际上没有任何意义:
( start_webservice & ) && curl localhost
这也没有道理:
start_webservice & test "$?" = 0 && curl localhost
只需启动后台服务并进行无条件测试。您很有可能需要稍等片刻,然后再进行该测试:
start_webservice &
success=0
tries=5
pause=1
while [ $success = 0 -a $tries -gt 0 ]; do
sleep $pause
let tries=tries-1
curl localhost && success=1
done
if [ $success = 0 ]; then
echo "Launch failed"
fi
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句