- Supervisord由root用户启动,由Systemd管理,开机自启动;
- 由Supervisord管理的程序自行决定由哪一用户启动;
安装Supervisord
# 解压
tar -xzvf setuptools-68.1.2.tar.gz
tar -xzvf supervisor-4.2.5.tar.gz
# 安装
sudo python/python3 setuptools-68.1.2/setup.py install
sudo python/python3 supervisor-4.2.5/setup.py install
# 验证
supervisord -v
Supervisord添加到Systemd
mkdir -p /var/lib/supervisord
mkdir -p /var/log/supervisord
mkdir -p /etc/supervisord
touch /etc/supervisord.conf
[unix_http_server]
file = /var/lib/supervisord/supervisord.sock
chmod = 0755
chown = root:root
;username = root
;password = root
[inet_http_server]
port = 127.0.0.1:9999
username = root
password = root
[supervisord]
logfile = /var/log/supervisord/supervisord.log
logfile_maxbytes = 32MB
logfile_backups = 5
loglevel = info
pidfile = /var/lib/supervisord/supervisord.pid
nodaemon = false
minfds = 1024
minprocs = 200
umask = 022
user = root
identifier = supervisord
directory = /var/lib/supervisord
nocleanup = false
childlogdir = /tmp
strip_ansi = false
[supervisorctl]
serverurl = unix:///var/lib/supervisord/supervisord.sock
;username = root
;password = root
prompt = supervisor
[include]
files = /etc/supervisord/*.conf /home/justin/Service/supervisor_conf/*.conf
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
supervisord -c /etc/supervisord.conf
# 创建脚本
touch /usr/lib/systemd/system/supervisord.service
# 脚本内容
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/python3 /usr/local/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/python3 /usr/local/bin/supervisorctl $OPTIONS shutdown
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
systemctl enable supervisord.service
systemctl start/stop/status supervisord.service
Supervisord管理服务
- 普通用户的服务的配置文件放置在
/home/justin/Service/supervisor_conf
目录下
- 系统用户的服务的配置文件放置在
/etc/supervisord
目录下
- 一般要求服务前台启动
- 示例配置文件如下
[program:zookeeper]
directory=/home/justin/Service/zookeeper-3.6.4
command=/home/justin/Service/zookeeper-3.6.4/bin/zkServer.sh start-foreground
autostart=false
autorestart=false
stopasgroup=true
killasgroup=true
user=justin
stdout_logfile=/home/justin/Service/zookeeper-3.6.4/logs/zoo_out.log
stdout_logfile_maxbytes=16MB
stdout_logfile_backups=2
redirect_stderr=true
environment=JAVA_HOME="/home/justin/.sdkman/candidates/java/current"
网友评论