我想找到一种方法来监视进程。如果进程没有运行,应该再次检查以确保它确实崩溃。如果真的应声运行的脚本(start.sh)检查进程是否运行,如果不执行script.sh
我曾尝试的monit没有更迭,我也试图在crontab中添加此脚本:我做到了可执行使用chmod + X monitor.sh
实际程序被称为program1
case "$(pidof program | wc -w)" in
0) echo "Restarting program1: $(date)" >> /var/log/program1_log.txt
/home/user/files/start.sh &
;;
1) # all ok
;;
*) echo "Removed double program1: $(date)" >> /var/log/program1_log.txt
kill $(pidof program1 | awk '{print $1}')
;;
esac
问题是这个脚本不起作用,我将它添加到crontab并将它设置为每2分钟运行一次。如果我关闭该程序,它将不会重新启动。
是否有任何其他方式来检查进程,并在崩溃时运行start.sh?
是的,要做到这一点的方法是使用像monit这样的监控工具或其他十几种这样的工具。如果你不能使用它(并且不想向**寻求帮助,那么这个脚本如何不起作用?脚本是做什么的? – 2014-11-24 19:08:34
运行'supervisor'或类似的东西,没有理由以重建轮/ NIH综合征 – Wrikken 2014-11-24 19:08:35
一个可能的直接答案是将nohup命令放在命令前面以运行该脚本:nohup /home/user/files/start.sh& - 其他海报是正确的,有很好的方法去做你想做的事。 – 2014-11-24 20:53:16