Javascript自动重新启动

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启动时,所有脚本

我有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启动时,所有脚本都会启动,但一旦完成,它们不会自动重新启动

有什么东西我可以添加到脚本本身,它会重新启动吗? 我试过了

但即使脚本尚未完成,也会重新启动脚本。

请使用以下方法尝试此操作:


您的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 &