尝试编写一个shell脚本作为cron作业运行,以确保bnlserver.js仍在运行,如果没有则重新启动。
我试过了:
#!/bin/sh
# this script checks to see if the "node bnlserver.js" program is running
# and restarts it if not
ps -ef | grep bnlserver.js
if [ $? -ne 0 ]
then
node | bnlserver.js
fi
exit
它不起作用。我糟糕的shell脚本。我相信大家都知道怎么做。 那么我该如何解决呢?谢谢你的帮助。
答案 0 :(得分:0)
像这样的东西
#!/bin/sh
if ! ps -ef | grep -q "[b]nlserver[.]js"; then
node bnlserver.js
fi
语法有点简洁,但要求准确性。 grep -q
命令将测试匹配,并在第一次匹配时退出。模式"[b]nlserver[.]js"
的设计是为了永远不会匹配grep搜索本身。
在pgrep
可用的平台上,这可以提高效率。
注意:感谢Charles Duffy对此代码的实质性改进。然而,他的协助并不支持这种做法 - 他更喜欢使用监督,永远或跑步。