使用sh脚本运行两次node.js

我用这个内容创build了一个名为runall.sh的bash脚本:

 #!/bin/bash node ../app1/app.js && node ../app/app.js 

chmod +x ./runall.sh并可以运行它。

但只有../app1/app.js开始。 如果我手动运行node ../app2/app.js它工作。

你可能想用&背景?

 #!/bin/bash node ../app1/app.js &; node ../app/app.js & 

shell脚本中的&&运算符试图进行短路AND比较。 这意味着它检查在第二个命令开始之前第一个命令的结果是什么。 所以它会等到第一次调用node终止,然后再调用第二个node

正如@daniel之前所说的,'&&'操作符后面的命令只有在执行完第一个命令后才会被调用。

所以你可以用'&'运算符发送一个命令到后台,或者你可以像永远一样使用某种node.js进程pipe理器。

这样你的runall.sh可能看起来像

 #! /bin/bash forever start ../app1/app.js forever start ../app2/app.js