77家的会客2010

使用supervisor进行进程监控和自启动管理

安装:

apt-get install supervisor

一定要用上面这种方式,不要用pip install supervisor,如果用pip的话,也会正常安装并且supervisord也能正常用,但是没法配置其它程序的自启动。

因为pip没有创建/etc/supervisor目录,而通过apt-get的方式安装的话,只要在/etc/supervisor/conf.d/目录下写 *.conf文件就可以在开机时自启动其它进程了

 

命令

Supervisor 有两个可执行程序 – supervisord 和 supervisorctl:

  • supervisord 是后台管理服务器, 用来依据配置文件的策略管理后台守护进程, 它会随系统自动启动
  • supervisorctl 用于管理员向后台管理程序发送 启动/重启/停止 等指令;

它们之间的关系就相当于 Apache 的 httpd 和 apachectl.

 

主配置文件

配置文件 用来指示 Supervisor 有哪些进程需要管理, 以及管理策略.

主配置文件 的路径位于 /etc/supervisor/supervisord.conf, 主配置文件中的末尾两行文本:

[include]
files = /etc/supervisor/conf.d/*.conf

指明了 Supervisor 会去 /etc/supervisor/conf.d/ 目录下查找以 .conf 结尾的子配置文件, 也就是说, 我们只需在 /etc/supervisor/conf.d/ 目录下为每个后台守护应用新建一个配置文件即可.

子配置文件

举个例子, 我们只需新建一个子配置文件 /etc/supervisor/conf.d/sites.conf:

[program:viking]
command =uwsgi --master --processes 4 /home/my/uwsgi_viking.ini
  • 为了方便管理, 每个后台守护应用对应一个 /etc/supervisor/conf.d/[program-name].conf 子配置文件
  • program: 后跟随的 codinn 指明后台守护应用的代号, supervisorctl 需要用该代号控制守护进程的启动/停止.
  • program 区的更多配置请参考: [program:x] Section Settings
  • 子配置基本上只需关心 program 区
  • command 字段设置的是后台守护应用的启动命令, 注意: 该命令必须是在前台执行的, 即会独占控制台, 否则会导致 supervisor 无法获得标准输出, 并失去进程的控制权.

控制守护进程

  • 每次 修改主配置文件 或 增改子配置文件 都需要执行 supervisorctl update 使新配置生效:
    sudo supervisorctl update
  • 控制守护进程:
    # 控制所有进程
    sudo supervisorctl start all
    sudo supervisorctl stop all
    sudo supervisorctl restart all

    # 定向控制指定进程
    sudo supervisorctl stop abc
    sudo supervisorctl start abc
    sudo supervisorctl restart abc
历史上的今天: [2009/05/23]玛格南
[2008/05/23]瞧!韩国的救援队在中国都干了些什么?(转)
[2006/05/23]合租征友

[使用supervisor进行进程监控和自启动管理]的回复

Post a Comment~