這個方案簡單不用額外安裝軟件。
缺點是存在間隔,corntab設置1秒執行一次shell腳本也是存在間隔的php
#!/bin/bash #@author smallForest #@email 1032817724@qq.com proc_name="xiaofei.php" #進程名字 proc_num() { num=`ps -ef | grep $proc_name | grep -v grep | wc -l` return $num } proc_num number=$? echo $number if [ $number -eq 0 ] then #cd /Applications/MAMP/htdocs/aa/bb/public #進入路徑 nohup php xiaofei.php >xiaofei 2>&1 & # 建立守護進程 fi
此方案反應速度快,對系統資源消耗較大html
yum install python-setuptools
easy_install supervisor
python
echo_supervisord_conf
有輸出就正確shell
mkdir /usr/supervisor echo_supervisord_conf > /usr/supervisor/supervisord.conf mkdir /usr/supervisor/supervisord.d/
vim /usr/supervisor/supervisord.conf
vim
[include] files = /usr/supervisor/supervisord.d/*.conf
supervisord -c /usr/supervisor/supervisord.conf
vim /usr/supervisor/supervisord.d/supervisor_test_one.conf
[program:test_one] command=php /root/lianxi_php/xiaofei.php ; 被監控的進程路徑 priority=1 ; 數字越高,優先級越高 numprocs=1 ; 啓動幾個進程 autostart=true ; 隨着supervisord的啓動而啓動 autorestart=true ; 自動重啓 startretries=10 ; 啓動失敗時的最多重試次數 exitcodes=0 ; 正常退出代碼 stopsignal=KILL ; 用來殺死進程的信號 stopwaitsecs=10 ; 發送SIGKILL前的等待時間 redirect_stderr=true ; 重定向stderr到stdout
supervisord -c /usr/supervisor/supervisord.conf
會有一個supervisor>
輸入reload
bash
參考linkpwa