supervisor安装配置实例
在项目开发中,DE通常会把自己开发的应用随着系统启动而自动启动, 而且启动之后最好还能方便的控制其停止/重启。 传统的做法是在 /etc/init.d/ 下建立启动脚本, 但这个方法非常繁琐, 容易出错, 而且不同服务器/不同版本的配置又有差异。Supervisor 允许用户去监控和管理Linux系统中的应用。supervisor和launchd, daemontools, runit有些类似,但是supervisor不是init运行 “process id 1”的替代品,它意味着在linux启动时启动用户自己开发的应用。
1. supervisor 安装
官网上介绍了可连网安装和非连网安装,本文实验了第一种
Internet-Installing With Setuptools
If the Python interpreter you’re using has Setuptools installed, and the system has internet access, you can download and install supervisor in one step using easy_install.
easy_install supervisor
2. supervisor配置和应用
supervisord 和 supervisorctl:
- supervisord 是后台管理服务器, 用来依据配置文件的策略管理后台守护进程, 它会随系统自动启动
supervisorctl用于管理员向后台管理程序发送 启动/重启/停止 等指令;
配置文件 用来指示 Supervisor 有哪些进程需要管理, 以及管理策略,以下是默认的路径。/etc/supervisor/supervisord.conf, 主配置文件中的末尾两行文本:
指明了 Supervisor 会去 /etc/supervisor/conf.d/ 目录下查找以 .conf 结尾的子配置文件,也就是说, 我们只需在 /etc/supervisor/conf.d/ 目录下为每个后台守护应用新建一个配置文件即可.
3. 实例应用
在我们的系统中,/etc/supervisor/supervisord.conf最后包含以下内容,
[include] files = /etc/supervisor/apps/mpe.conf
在/etc/supervisor/apps/mpe.conf下则定义了需要启动的应用。
[program:trafficserver] command = /opt/cisco/mos/bin/traffic_cop stdout_logfile = /var/log/supervisor/trafficserver_out.log stderr_logfile = /var/log/supervisor/trafficserver_err.log priority=121 autostart=false autorestart=true stopasgroup=true environment = LD_LIBRARY_PATH=/opt/cisco/mos/mpe/lib
[root@mos-ngmpe1 apps]# supervisorctl status
trafficserver RUNNING pid 32069, uptime 23:36:59
控制守护进程命令
# 控制所有进程
sudo supervisorctl start all
sudo supervisorctl stop all
sudo supervisorctl restart all
# 定向控制指定进程
sudo supervisorctl stop trafficserver
sudo supervisorctl start trafficserver
sudo supervisorctl restart trafficserver

浙公网安备 33010602011771号