Linux中的进程守护supervisor安装配置及使用
supervisor是一个很好的守护程序管理工具,配置方面自动启动,日志输出,自动切割日志等等一系列强大功能,下面是在CentOS下安装使用supervisor的记录。
安装
#epel源 yuminstallepel-release #安装supervisor yuminstall-ysupervisor #开机自启动 systemctlenablesupervisord #启动supervisord服务 systemctlstartsupervisord Bash
配置路径
#主配置文件 /etc/supervisord.conf #运行程序配置文件夹 /etc/supervisord.d/ Bash
操作命令
systemctlstopsupervisord systemctlstartsupervisord systemctlstatussupervisord #重新加载配置文件,不影响正在运行的程序 systemctlreloadsupervisord systemctlrestartsupervisord Bash
使用测试
写一个测试脚本test.php,记录启动次数和运行。
PHP
在程序配置文件夹/etc/supervisord.d中添加test.ini:
[program:test] directory=/home/wwwroot/test.cc command=phptest.php autostart=true autorestart=true stderr_logfile=/home/wwwroot/test.cc/log/error.log stdout_logfile=/home/wwwroot/test.cc/log/out.log Ini上面只是一些必要的基本配置,更详细的配置参考:
;[program:theprogramname] ;command=/bin/cat;theprogram(relativeusesPATH,cantakeargs) ;process_name=%(program_name)s;process_nameexpr(default%(program_name)s) ;numprocs=1;numberofprocessescopiestostart(def1) ;directory=/tmp;directorytocwdtobeforeexec(defnocwd) ;umask=022;umaskforprocess(defaultNone) ;priority=999;therelativestartpriority(default999) ;autostart=true;startatsupervisordstart(default:true) ;autorestart=true;retstartatunexpectedquit(default:true) ;startsecs=10;numberofsecsprogmuststayrunning(def.1) ;startretries=3;max#ofserialstartfailures(default3) ;exitcodes=0,2;'expected'exitcodesforprocess(default0,2) ;stopsignal=QUIT;signalusedtokillprocess(defaultTERM) ;stopwaitsecs=10;maxnumsecstowaitb4SIGKILL(default10) ;user=chrism;setuidtothisUNIXaccounttoruntheprogram ;redirect_stderr=true;redirectprocstderrtostdout(defaultfalse) ;stdout_logfile=/a/path;stdoutlogpath,NONEfornone;defaultAUTO ;stdout_logfile_maxbytes=1MB;max#logfilebytesb4rotation(default50MB) ;stdout_logfile_backups=10;#ofstdoutlogfilebackups(default10) ;stdout_capture_maxbytes=1MB;numberofbytesin'capturemode'(default0) ;stdout_events_enabled=false;emiteventsonstdoutwrites(defaultfalse) ;stderr_logfile=/a/path;stderrlogpath,NONEfornone;defaultAUTO ;stderr_logfile_maxbytes=1MB;max#logfilebytesb4rotation(default50MB) ;stderr_logfile_backups=10;#ofstderrlogfilebackups(default10) ;stderr_capture_maxbytes=1MB;numberofbytesin'capturemode'(default0) ;stderr_events_enabled=false;emiteventsonstderrwrites(defaultfalse) ;environment=A=1,B=2;processenvironmentadditions(defnoadds) ;serverurl=AUTO;overrideserverurlcomputation(childutils) Ini运行重启或者重载配置命令加载新配置:
systemctlrestartsupervisord systemctlreloadsupervisord Bash查看进程:
[root@localhosttest.cc]#ps-aux|greptest.php root222770.00.626973212124?S17:380:00phptest.php root223350.00.0112712996pts/0S+17:410:00grep--color=autotest.php Bash可以重启服务器,或者kill-9PID杀死进程,会发现supervisor会第一时间重启程序,达到了守护进程的目的。
关于配置方面仔细看看上面的参考,基本上涵盖了需要的功能,多进程的运行,切割日志的大小,保留数量等等,功能强大而且使用。
更多高级功能请参考supervisor官网使用手册:传送门
总结
以上所述是小编给大家介绍的Linux中的进程守护supervisor安装配置及使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!