Supervisor
Supervisor是一款开源的进程管理工具,可以在Linux和Unix系统上管理进程、守护进程和应用程序。Supervisor可以监控进程状态,自动重启失败的进程,记录进程日志等。
通过CURL 重启服务
| -u 携带账户密码
curl -L -u username:passwd -d 'processname=web_tools&action=restart' http://10.44.3.3:9101
|
安装
生成Supervisor配置文件
| echo_supervisord_conf > /etc/supervisord.conf
|
配置文件
| [program:web]
command=/usr/bin/python /root/web/web.py
directory=/root/web/web
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/root/web/web.log
user=your_username
program: web;
command:表示启动命令;
directory:表示应用程序的工作目录;
autostart:表示是否自动启动;
autorestart:表示进程崩溃时是否自动重启;
redirect_stderr:表示是否重定向标准错误输出;
stdout_logfile:表示标准输出日志文件的路径。
user:表示服务所运行的用户。
|
启动服务
| supervisord -c /etc/supervisord.conf
|
管理命令
| supervisorctl status
supervisorctl start web
supervisorctl stop web
supervisorctl restart web
|
web控制supervisord
在 /etc/supervisor/supervisord.conf 文件中添加以下配置:
| [inet_http_server]
port = 0.0.0.0:9001
username = user
password = pass
|
后面直接使用设置的密码和账户登录即可
全部配置解释
| [supervisord] 部分:
logfile:Supervisor 的日志文件路径。
logfile_maxbytes:Supervisor 日志文件的最大大小,超过此大小将会被轮换。
logfile_backups:Supervisor 日志文件的备份数量。
loglevel:Supervisor 的日志级别。
pidfile:Supervisor 进程 ID 文件的路径。
nodaemon:Supervisor 运行时是否使用守护进程模式。
minfds:Supervisor 运行时需要的最小文件描述符数。
minprocs:Supervisor 运行时需要的最小进程数。
[rpcinterface:supervisor] 部分:
supervisor.rpcinterface_factory:Supervisor RPC 接口的实现类。
[supervisorctl] 部分:
serverurl:Supervisor RPC 服务器的 URL。
username:Supervisor RPC 用户名。
password:Supervisor RPC 密码。
[program:x] 部分(x 表示程序名称):
command:程序启动命令。
autostart:是否随着 Supervisor 启动而启动。
autorestart:是否自动重启程序。
startsecs:程序启动后等待的秒数,超过此时间仍未成功启动则被认为启动失败。
startretries:最多尝试启动的次数。
exitcodes:程序退出时被认为是正常退出的返回码列表。
stopsignal:停止程序时使用的信号。
stopwaitsecs:停止程序时等待的秒数,超过此时间仍未成功停止则被认为停止失败。
user:程序运行时使用的用户名。
directory:程序的工作目录。
environment:程序运行时的环境变量。environment=VAR1=value1,VAR2=value2,VAR3=value3
stdout_logfile:标准输出日志文件路径。
stdout_logfile_maxbytes:标准输出日志文件的最大大小。
stdout_logfile_backups:标准输出日志文件的备份数量。
stderr_logfile:标准错误日志文件路径。
stderr_logfile_maxbytes:标准错误日志文件的最大大小。
stderr_logfile_backups:标准错误日志文件的备份数量。
|