Javascript自动重新启动
我有8个javascripts,通过linux机器上的node启动 我想要的是,当脚本完成并自行关闭时,它将自动重新启动 因此,我创建了一个start.sh,如下所示Javascript自动重新启动,javascript,linux,node.js,restart,Javascript,Linux,Node.js,Restart,我有8个javascripts,通过linux机器上的node启动 我想要的是,当脚本完成并自行关闭时,它将自动重新启动 因此,我创建了一个start.sh,如下所示 while true; do node 1.js & node 2.js & node 3.js & node 4.js & node 5.js & node 6.js & node 7.js & node 8.js; done 当我通过./start.sh启动时,所有脚本
while true; do
node 1.js & node 2.js & node 3.js & node 4.js & node 5.js & node 6.js & node 7.js & node 8.js;
done
当我通过./start.sh启动时,所有脚本都会启动,但一旦完成,它们不会自动重新启动
有什么东西我可以添加到脚本本身,它会重新启动吗?
我试过了
但即使脚本尚未完成,也会重新启动脚本。请使用以下方法尝试此操作:
您的shell代码段有一些问题 首先,每个
节点script.js
调用之后都会有一个&
在后台执行,最后一个除外。在当前设置中,您将开始运行每个脚本,并等待第八个脚本完成。此时,您将再次循环并启动每个脚本,而不管它们的最后一次执行是否完成 虽然其他基于node.js的答案显然优于node.js,但我认为您可以使用shell脚本完成以下工作:
while true; do node 1.js; done &
while true; do node 2.js; done &
[...]
while true; do node 8.js; done &
这将在后台启动8个循环,因此您不必等待第一个循环完成后再启动下一个循环。但是,每个循环都会等待脚本完成后再循环。这样,每个脚本启动都独立于其他脚本启动,但取决于它们以前的执行情况。如果您可以编辑JS文件,那么您应该在(1)时将整个脚本包装在
中,否则请查看Linux上的watch
命令。
var async = require('async');
var onejs = require('1.js');
var twojs = require('2.js');
var threejs = require('3.js');
// a simple recursive function that gets called once all functions
//are done executing, this should go on forever
function start() {
async.parallel([
onejs,
twojs,
threejs
], function done() {
start();
});
}
// remember your scripts should call async's callback,
// i am assuming you know you know how to use asyncjs.
while true; do node 1.js; done &
while true; do node 2.js; done &
[...]
while true; do node 8.js; done &