Bash脚本检查特定php进程是否正在运行



我正在使用下面的nohup命令运行websocket服务器。

nohup php -q chat-server.php > ratchet_ws.log &

但几个小时后它就停止工作了。所以我创建了一个bash脚本,如下所示

#!/bin/bash
while true
do
if pgrep php > /dev/null
then
    echo  "Running" 
else
   cd /..path../
   nohup php -q chat-server.php > ratchet_ws.log &
fi
sleep 1;
done

然后用下面的命令运行脚本,如下所示。

nohup sh chk_process.sh > chk_process.log &

以上脚本的工作,如果检查我的chat-server.php是否运行,如果它没有运行,那么它将重新启动它。

if pgrep php > /dev/null

但是这一行检查的是php进程是否在运行,但是我只想检查我的chat-server.php

可以使用pgrep -f或pgrep -x选项。

手册页

条目

-f模式通常只匹配进程名。当设置-f时,使用完整的命令行。
-x只匹配名称(如果指定-f,则命令行)与模式完全匹配的进程。

相关内容

  • 没有找到相关文章

最新更新