Bash 检查特定 php 进程的脚本是 运行?
Bash script to check a specific php process is running?
我运行正在使用如下 nohup 命令连接 websocket 服务器。
nohup php -q chat-server.php > ratchet_ws.log &
但它在几次 hours.So 后停止工作我创建了一个 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 &
上面脚本的工作如果检查我的聊天-server.php是否是运行ning如果不是运行ning然后它会重新开始。
if pgrep php > /dev/null
但是这一行正在检查任何 php 进程是否 运行ning。但我希望它只检查我的聊天-server.php。
您可以使用 pgrep -f 或 pgrep -x 选项。
来自手册页的条目
-f 该模式通常只匹配进程名称。当设置 -f 时,使用完整的命令行。
-x 仅匹配名称(或命令行,如果指定了 -f)与模式完全匹配的进程。
我运行正在使用如下 nohup 命令连接 websocket 服务器。
nohup php -q chat-server.php > ratchet_ws.log &
但它在几次 hours.So 后停止工作我创建了一个 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 &
上面脚本的工作如果检查我的聊天-server.php是否是运行ning如果不是运行ning然后它会重新开始。
if pgrep php > /dev/null
但是这一行正在检查任何 php 进程是否 运行ning。但我希望它只检查我的聊天-server.php。
您可以使用 pgrep -f 或 pgrep -x 选项。
来自手册页的条目
-f 该模式通常只匹配进程名称。当设置 -f 时,使用完整的命令行。
-x 仅匹配名称(或命令行,如果指定了 -f)与模式完全匹配的进程。