linux进程监控shell脚本代码
为确保php页面在后台运行,写了一个监控脚本,假设程序异常退出,那么可以自动重启。
shell脚本/usr/local/scripts/receve.sh内容:
#!/bin/bash #funtion:keepreceve.phprunning PHP="/usr/local/php5/bin/php" PROGRAM="receve.php" #startdameo $PHP/home/httpd/$PROGRAM>>/usr/local/scripts/phpshell/receve.out& chpid="$!"; echo"$chpid">/usr/local/scripts/phpshell/receve.sid echo"childpidis$chpid" echo"statusis$?" while[1] do wait$chpid exitstatus="$?" echo"childpid=$chpidisgone,$exitstatus">>/usr/local/scripts/phpshell/receve.php_error.log echo`date`>>/usr/local/scripts/phpshell/receve.php_error.log echo"**************************">>/usr/local/scripts/phpshell/receve.php_error.log sleep10 $PHP/home/httpd/$PROGRAM>>/usr/local/scripts/phpshell/receve.out& chpid="$!"; echo"$chpid">/usr/local/scripts/phpshell/receve.sid echo"nextchildpidis$chpid" echo"nextstatusis$?" done
需要保证监控脚本正常运行,在每天凌晨自动重启脚本/usr/local/scripts/restart_r.sh,写入crontab:
#!/bin/bash
echo"">/tmp/receve_pid.txt
/bin/psax|/bin/grep"receve.sh"|/bin/grep-v"grep"|/bin/awk'{print$1}'>/tmp/receve_pid.txt
no1pid=`cat/tmp/receve_pid.txt|sort-r`
no2pid=`cat/usr/local/scripts/phpshell/receve.sid|sort-r`
if[-z$no1pid];then
echo"receve.shpidisnull,receve.shisnotrunning."
else
/bin/kill-9"$no1pid"
echo"receve.shkilled"
fi
sleep3
if[-z$no2pid];then
echo"receve.phppidisnull,receve.phpisnotrunning."
else
/bin/kill-9"$no2pid"
echo"receve.phpkilled"
fi
rm-rf/usr/local/scripts/phpshell/receve.sid
sleep3
/usr/local/scripts/receve.sh>/dev/null&
crontab:
#restartreceve.sh 1000***/usr/local/scripts/restart_r.sh
注意:脚本命名要避免重复,避免自己kill掉自己的进程。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下