![grep 重新启动脚本(如果未运行)](https://linux22.com/image/81781/grep%20%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC%EF%BC%88%E5%A6%82%E6%9E%9C%E6%9C%AA%E8%BF%90%E8%A1%8C%EF%BC%89.png)
大家好,我在这里遇到一个问题,我需要在后台运行 nohup php 脚本,并确保它始终运行并在崩溃时重新启动。我每分钟使用 crontab 作业运行以下 bash 脚本,
#!/usr/bin/bash
ps -ef|grep -v grep |grep script_name
if [ $? != 0 ]; then
nohup php path/to/script/script_name &
fi
我手动终止我的脚本,但它从未重新启动,我目前需要在 centos 6.5 中完成这项工作。我已经在centos 7.1中测试了相同的配置并且它可以工作。可能有一个可以在 centos 6.5 中工作的替代方案吗?
答案1
最好的方法是使用 systemd;不过我不知道centos 6.5 是否可用。
没有 systemd:运行启动和重新启动 PHP 脚本的脚本可能比检查脚本的脚本更容易。像这样的东西:
#! /bin/bash
while ! php path/to/script/script_name; do
:
done
如果需要,可以使用 nohup 启动此包装器脚本。
一般来说,你应该使用pgrep
:
pgrep --full script_name