系統環境:服務器
# uname -r 2.6.32-431.el6.x86_64 # cat /etc/redhat-release CentOS release 6.5 (Final)
對服務器狀態監控的一段腳本中使用了查詢進程信息的幾句代碼:ide
server="srs" care_pid=`pgrep -f $server` #echo "$server pid =" $care_pid care_ps=`ps aux | grep $server | grep -v "grep"` #echo $care_ps
直接命令行執行腳本,輸入信息以下:spa
srs pid = 5939 root 5939 1.4 0.0 51648 22288 ? S Jun22 1209:38 ./objs/srs -c ./conf/srs.conf
設置定時器crontab 自動執行腳本,輸出信息以下::命令行
srs pid = 5939 24244 24245 root 5939 1.4 0.0 51648 22288 ? S Jun22 1209:38 ./objs/srs -c ./conf/srs.conf root 24244 1.0 0.0 106060 1284 ? Ss 14:35 0:00 /bin/sh -c /usr/local/srs/video_server_monitor.sh >> /usr/local/srs/monitor.log root 24245 0.0 0.0 106060 936 ? S 14:35 0:00 /bin/sh -c /usr/local/srs/video_server_monitor.sh >> /usr/local/srs/monitor.log root 24252 0.0 0.0 106060 512 ? S 14:35 0:00 /bin/sh -c /usr/local/srs/video_server_monitor.sh >> /usr/local/srs/monitor.log
目前尚不知道什麼緣故,暫時更改腳本解決了問題。具體的緣由還須要下次查詢。
換個寫法定時執行獲得正確結果,更改以下:code
server="srs" care_pid=`pgrep -n $server` #echo "$server pid =" $care_pid care_ps=`ps p $care_pid u` #echo $care_ps