Ubuntu18.04 使用supervisor做守护进程
注:本文有引用其他博客内容,引用地址:https://blog.youkuaiyun.com/A156348933/article/details/85158005
目录
1. 安装
sudo apt-get install supervisor
2.配置
a) 生成默认supervisord服务的配置文件
sudo sh -c 'echo_supervisord_conf > /etc/supervisor/supervisord.conf'
b)修改配置文件supervisord.conf
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor/conf.d/*.conf
c)应用该配置文件
sudo supervisord -c /etc/supervisor/supervisord.conf
d)到/etc/supervisor/conf.d/下添加.conf格式的文件, 配置需要被守护的进程,注意分号前的空格.
[program:palmGate]
command=/usr/bin/env bash /usr/local/bin/start.sh
user=palm
autostart=false
autorestart=true
startsecs=20
stdout_logfile=/usr/local/bin/supervisor_log/palmGateMachine_out.log
stderr_logfile=/usr/local/bin/supervisor_log/palmGateMachine_err.log
3. 加载配置
sudo supervisorctl reload
4.启动配置文件,开启对应进程
sudo supervisorctl start [conf_name]
#示例
sudo supervisorctl start palmGate
5. 常用命令
supervisorctl stop|start program_name #停止|启动任务
supervisorctl restart program_name #重启某个进程
supervisorctl stop foo: #停止所有属于名为foo这个分组的进程(start,restart同理),注意冒号
supervisorctl stop all#停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload#载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update#根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
supervisorctl tail -f program_name # 查看 该程序的日志
supervisorctl shutdown #关闭supervisord进程
supervisorctl status #查看所有任务状态
ps -ef | grep common #查看进程信息
6.supervisord配置文件详解
[unix_http_server]
file=/tmp/supervisor.sock ; socket文件的路径,supervisorctl用XML_RPC和supervisord通信就是通过它进行
的。如果不设置的话,supervisorctl也就不能用了
不设置的话,默认为none。 非必须设置
;chmod=0700 ; 这个简单,就是修改上面的那个socket文件的权限为0700
不设置的话,默认为0700。 非必须设置
;chown=nobody:nogroup ; 这个一样,修改上面的那个socket文件的属组为user.group
不设置的话,默认为启动supervisord进程的用户及属组。非必须设置
;username=user ; 使用supervisorctl连接的时候,认证的用户
不设置的话,默认为不需要用户。 非必须设置
;password=123 ; 和上面的用户名对应的密码,可以直接使用明码,也可以使用SHA加密

本文详述了在Ubuntu18.04上使用Supervisor作为守护进程管理器的步骤,包括安装、配置、加载配置、启动进程等关键环节,同时提供了常见命令的使用说明和配置文件详解,帮助读者深入了解Supervisor的工作原理。
最低0.47元/天 解锁文章
896

被折叠的 条评论
为什么被折叠?



