本文共 1529 字,大约阅读时间需要 5 分钟。
今天介绍一个进程管理工具supervisor,Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
supervisor的安装很简单
easy_install supervisor
生成初始配置文件echo_supervisord_conf > /etc/supervisord.conf
vim /etc/supervisord.conf#配置文件最后一行进行修改[include];files = relative/directory/.inifiles = /etc/supervisord.d/.conf配置应用启动文件mkdir -p /etc/supervisord.d/
cd /etc/supervisord.d/vim suptest.conf#配置段内容如下[program:suptest] #定义program,启动时使用,比如"supervisorctl start suptest"user=rootcommand= xxxx #应用启动命令,具体实际为准autostart=true #伴随服务自动启动autorestart=true #伴随服务自动重启startsecs=10stdout_logfile=/data/logs/suptest.log #定义日志输出路径,需确保目录存在stdout_logfile_maxbytes=1MBstdout_logfile_backups=10stdout_capture_maxbytes=1MBstderr_logfile=/data/logs/suptest_err.log #定义错误日志输出路径,需确保目录存在stderr_logfile_maxbytes=1MBstderr_logfile_backups=10stderr_capture_maxbytes=1MBstopsignal=INT[supervisord] #配置结束标志启动supervisor服务/usr/local/bin/supervisord -c /etc/supervisord.conf #启动服务
suptest服务的启动关闭重启操作supervisorctl start suptest
supervisorctl stop suptestsupervisorctl restart suptestsupervisorctl status supervisorctl start all #所有进程的操作supervisor的web管理界面配置vim /etc/supervisord.conf
#配置文件最后一行进行修改[inet_http_server]port=0.0.0.0:8080username=supervisorpassword=supervisor重启服务,可通过web访问控制原文地址:
转载于:https://blog.51cto.com/j99d99/2324149