{"id":537,"title":"supervisor\u642d\u5efa\u53ca\u914d\u7f6e\u7ba1\u7406swoole\u670d\u52a1","good":0,"bad":0,"hit":2059,"created_at":"2021-05-22 02:53:39","content":"
\u5b89\u88c5\uff1a<\/p>
apt-get install supervisor<\/p>
<\/p>
\u542f\u52a8\uff1a<\/p>
service supervisor start<\/p>
service supervisor stop<\/p>
<\/p>
supervisorctl:<\/p>
supervisorctl shutdown #\u5173\u95ed\u6240\u6709\u4efb\u52a1<\/p>
supervisorctl stop|start program_name #\u542f\u52a8\u6216\u505c\u6b62\u670d\u52a1<\/p>
supervisorctl status #\u67e5\u770b\u6240\u6709\u4efb\u52a1\u72b6\u6001<\/p>
$supervisorctl reload #\u91cd\u65b0\u8f7d\u5165\u914d\u7f6e<\/p>
<\/p>
\u914d\u7f6e\u793a\u4f8b\u6587\u4ef6\uff08\/etc\/supervisor\/conf.d\/test.conf)<\/p>
[program:taibao_]<\/p>
process_name=listen-auto-call-mq-save-to-ftp<\/p>
command=php \/data\/www\/artisan taiBao:listen-auto-call-mq-save-to-ftp<\/p>
autostart=true<\/p>
autorestart=true<\/p>
user=root#\u6ce8\u610f\u8fd9\u91cc\u6700\u597d\u914d\u7f6e\u6210root,\u4e0d\u7136\u6267\u884cnetstat\u7b49\u547d\u4ee4\u53ef\u80fd\u62a5\uff1aNot all processes could be identified, non-owned process info will not be shown, you would have to be root to see it al<\/p>
numprocs=1<\/p>
redirect_stderr=true<\/p>
stdout_logfile=\/etc\/supervisor\/conf.d\/supervisor.log<\/p>
<\/p>
[program:taibao_]<\/p>
process_name=shell-run-artisan<\/p>
command=sh \/data\/www\/crontab.sh<\/p>
autostart=true<\/p>
autorestart=true<\/p>
user=root<\/p>
numprocs=1<\/p>
redirect_stderr=true<\/p>
stdout_logfile=\/etc\/supervisor\/conf.d\/supervisor.log<\/p>
startsecs=10<\/p>
startretries=3<\/p>
<\/p>
[program:taibao]<\/strong><\/p> process_name=supervisor-artisan<\/strong><\/p> command=php \/data\/www\/artisan taiBao:supervisor-artisan<\/strong><\/p> autostart=true<\/strong><\/p> autorestart=true<\/strong><\/p> user=root<\/strong><\/p> numprocs=1<\/strong><\/p> redirect_stderr=true<\/strong><\/p> startsecs=10<\/strong><\/p> startretries=3<\/strong><\/p> stdout_logfile=\/etc\/supervisor\/conf.d\/supervisor.log<\/strong><\/p> tip1:swoole\u7684daemonize\u53c2\u6570\u8981\u8bbe\u7f6e\u4e3a0\uff0c\u5426\u5219supervisor\u7ba1\u7406\u4e0d\u5230\uff0csupervisor\u505c\u6b62\u540eserver\u8fd8\u5728\u8dd1<\/p> $serv->set(array(<\/p> 'worker_num' => 1,<\/p> 'daemonize' => 0,<\/p> 'backlog' => 128,<\/p> ));<\/p> tip2:<\/p> supervisor\u5b98\u65b9\u6587\u6863\uff1ahttp:\/\/supervisord.org\/configuration.html<\/p> tip3:\u65e5\u5fd7\u5b9a\u65f6\u5907\u4efd\u811a\u672c<\/p> #!\/bin\/bash<\/p> logfile=\/var\/log\/app.log<\/p> if [ -s $logfile ];then<\/p> rm -f $logfile<\/p> fi<\/p> touch $logfile<\/p> chmod a+w $logfile<\/p> _START () {<\/p> echo "$(date +"%F %H:%M:%S") INOF Start collecting logs in file $logfile" >\/proc\/1\/fd\/1<\/p> tail -F $logfile >\/proc\/1\/fd\/1 2>\/dev\/null &<\/p> }<\/p> while true<\/p> do<\/p> ps aux|grep "tail -F "|grep -v grep >\/dev\/null 2>&1<\/p> if [ $? -ne 0 ];then<\/p> echo "$(date +"%F %H:%M:%S") ERROR collection process is not running" >\/proc\/1\/fd\/2<\/p> _START<\/p> fi<\/p> sleep 30<\/p> if [ -s $logfile ];then<\/p> Size=$(stat -c "%s" $logfile)<\/p> if [ $Size -ge 110000000 ];then<\/p> echo "$(date +"%F %H:%M:%S") WAR clean file $logfile" >\/proc\/1\/fd\/2<\/p> >$logfile<\/p> fi<\/p> else<\/p> echo "$(date +"%F %H:%M:%S") WAR log file $logfile is not found" >\/proc\/1\/fd\/2<\/p> fi<\/p> done<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>"}