Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 循环未在Bash中完成_Node.js_Bash_Ubuntu - Fatal编程技术网

Node.js 循环未在Bash中完成

Node.js 循环未在Bash中完成,node.js,bash,ubuntu,Node.js,Bash,Ubuntu,我正在制作这个Bash脚本(见下文),它应该检查Node.JS文件是否正在运行,如果没有,它将重新启动文件并继续循环。但是,当它尝试运行该文件时,它不会继续 这将在Ubuntu上运行,但我现在正在Windows10上检查。我知道我可以用Nodemon,但我更喜欢用这个 如果没有节点%NAME,循环运行正常-所以我猜这可能是因为一旦它尝试启动node.JS,它就不会继续,或者我用Bash运行node时出错了,不管我如何看待另一个问题,似乎我做得对 任何帮助都将不胜感激。谢谢 代码: 对于研究案例

我正在制作这个Bash脚本(见下文),它应该检查Node.JS文件是否正在运行,如果没有,它将重新启动文件并继续循环。但是,当它尝试运行该文件时,它不会继续

这将在Ubuntu上运行,但我现在正在Windows10上检查。我知道我可以用Nodemon,但我更喜欢用这个

如果没有
节点%NAME
,循环运行正常-所以我猜这可能是因为一旦它尝试启动node.JS,它就不会继续,或者我用Bash运行node时出错了,不管我如何看待另一个问题,似乎我做得对

任何帮助都将不胜感激。谢谢

代码:


对于研究案例 避免节点阻塞脚本 您需要做的只是添加&

 node $NAME &
话虽如此,还有一个更好的选择,那就是保持 脚本运行我推荐您作为
@P Burke提到阅读PM2


脚本将一直阻止,直到
节点退出,此时它将在
节点启动后继续。循环本身永远不会退出。也许您想在后台运行
节点
,然后使用
中断
?是一个有效的流程管理者,为什么不使用它来避免麻烦呢?@PBurke我可以,但是1。这是我在bash方面获得一些经验的东西,所以在任何需要它的地方,我都可以。2.这是我正在做的一个项目。所以可能会在某个时候使用它,但谢谢你。
 node $NAME &
#!/bin/bash

NAME="Run.js"
RUN=`pgrep -f $NAME`

while true
do
    if [ "$RUN" == "" ]; then
        echo "Script is not running"
        node $NAME &
    else
        echo "Script is running"
    fi
    sleep 5
done