β

使用supervisord管理进程

阿权的书房 13 阅读
# 什么是supervisord

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

# 怎么安装

CentOS: yum install supervisor

其它:

1:easy_install 安装:
easy_install supervisor

2:pip 安装:
pip install supervisor

3:Debian / Ubuntu可以直接通过apt安装:
apt-get install supervisor

# 如何配置

用yum安装的,需要看看conf里的include
[include]
files = supervisord.d/*.ini

在 supervisord.d 目录里创建 task.ini 即可,比如:

[program:daemon]
directory=/Data/webapps/aslibra.com/
command=/usr/bin/php index.php messages daemon
autostart=true
autorestart=true
stderr_logfile=/Data/logs/daemon_stderr.log
stdout_logfile=/Data/logs/daemon_stdout.log
user=www


directory 执行command之前切换到此目录
command 执行命令
autostart 自动启动
autorestart 自动重启
user 执行的用户

# 服务管理

记得把服务做成自动启动的
service supervisord restart
chkconfig supervisord on


# 服务监控

conf 文件有一个选项开启,可以有网页控制后台
;[inet_http_server]         ; inet (TCP) server disabled by default
;port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)

解开注释即可,重启后,我们可以访问到,但不是公开的,所以可以用ssh转换一下
比如:
ssh root@your-server.com -L9001:127.0.0.1:9001
那你就可以访问 127.0.0.1:9001 就相当于在服务器访问 127.0.0.1:9001 了

# 详细配置参数参考

https://www.cnblogs.com/zhoujinyi/p/6073705.html
Tags - ,
作者:阿权的书房
资料收集分享,偶尔晾几张相片,感言生活
原文地址:使用supervisord管理进程, 感谢原作者分享。

发表评论