grep 重新启动脚本(如果未运行)

grep 重新启动脚本(如果未运行)

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

相关内容