Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是 Python 进程)。
如果不想把自己写的程序脚本,做services,supervisor是一个不错的选择。supervisor只针对前端运行的脚本起做用。它比nohup强大很多。
1,安装python,supervisor
# apt-get install python supervisor
2,配置supervisor
# cat /etc/supervisor/conf.d/mini_breakpad.conf [program:minibreakpad] //进程名称 directory = /root/error/mini-breakpad-server //程序的启动目录 command = node lib/app.js //启动命令 autostart = true //在supervisord 启动的时候也自动启动 startsecs = 5 //启动5秒后没有退出就当做已经正常启动 autorestart = true //程序异常退出后自动重启 startretries = 5 //启动失败自动重试次数 5 user = root //用哪个用户启动 redirect_stderr = true //把 stderr 重定向到 stdout 默认 false,如果是false就不需要设置下面的log配置 stdout_logfile_maxbytes = 20MB //stdout 日志文件大小,默认50MB stdout_logfile_backups = 20 //stdout 日志文件备份数 //stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件) stdout_logfile = /root/error/mini-breakpad-server/logs/stdout.log
3,重启supervisor,查看状态
# /etc/init.d/supervisor restart # supervisorctl status minibreakpad RUNNING pid 17655, uptime 2:57:07
注意:如果在后台运行的程序,有守护进程的,就不要用supervisor,用了nohup也不行。会报以下错误
# supervisorctl status
minibreakpad FATAL Exited too quickly (process log may have details)
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/linux/1933.html