【发布时间】:2019-06-18 12:28:03
【问题描述】:
我正在制作这个 Bash 脚本(见下文),它应该检查 Node.JS 文件是否正在运行,如果没有 - 它将重新启动文件并继续循环。但是,当它尝试运行该文件时,它不会继续。
这将在 Ubuntu 上运行,但我目前正在 Windows 10 上进行检查。我知道我可以使用 Nodemon,但我更愿意使用它。
没有node %NAME,循环运行良好 - 所以我猜这可能是因为一旦它尝试启动 Node.JS 它就不会继续,或者我在 Bash 中运行节点错误,但是我有看了另一个问题,看来我做得对。
任何帮助将不胜感激。谢谢
代码:
#!/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
【问题讨论】:
-
脚本会一直阻塞直到
node退出,此时它会在node启动后的位置继续。循环本身从不退出。也许你想在后台运行node,然后使用break? -
pm2 是一个有效的流程管理器,为什么不使用它来省去麻烦呢?
-
@PBurke 我可以,但是 1. 这是让我获得一些 bash 经验的东西,所以在我需要的任何情况下,我都可以。 2. 这是我正在做的一个项目。所以可能会在某个时候使用它,但谢谢。