我有一个bash脚本来监视进程是否正在运行。该流程还有多个正在运行的子流程。
通过计算所有进程和子进程是否正在运行来检查进程是否成功运行。如果计数不匹配,我会尝试终止所有进程并再次重新启动该进程。
#!/bin/bash
procno=$(pgrep -f process_name | wc -l);
echo "process found: $procno"
if [ "$procno" = "4" ];then
echo "Process is Running. No action taken"
else
echo "Killing Processes"
pgrep -f process_name | xargs kill
echo "Restarting Process"
nohup process_name &
fi
但是,脚本在kill命令后退出。它不想重新启动该过程。提示中没有错误消息,但它不会重新启动进程,也不会执行echo "Restarting Process"
行。