大家好,我在这里遇到一个问题,我需要在后台运行 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