searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

使用supervisord管理进程

2023-10-27 07:20:51
16
0
1. 根据supervisor配置文件确定被管理进程的配置文件路径
# cat /etc/supervisord/supervisord.conf
[include]
files = conf.d/*.conf

在同级目录下的conf.d文件中,以conf结尾的配置文件将被管理

2. 被管理进程模版

# vi /etc/supervisord/conf.d/tomcat.conf
[program:tomcat]                                        #程序唯一名称
directory=/usr/local/tomcat                             #程序路径
command=/usr/local/tomcat/bin/catalina.sh run           #运行程序的命令
autostart=true                                          #是否在supervisord启动后tomcat也启动
startsecs=10                                            #启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true                                        #程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启;意思为如果不是supervisord来关闭的该进程则认为不正当关闭,supervisord会再次把该进程给启动起来,只能使用该supervisorctl来进行关闭、启动、重启操作 
startretries=3                                          #启动失败自动重试次数,默认是3
user=root                                               #用哪个用户启动进程,默认是root
priority=999                                            #进程启动优先级,默认999,假如Supervisord需要管理多个进程,那么值小的优先启动
stopsignal=INT
redirect_stderr=true                                    #把stderr重定向到stdout标准输出,默认false
stdout_logfile_maxbytes=200MB                           #stdout标准输出日志文件大小,日志文件大小到200M后则进行切割,切割后的日志文件会标示为catalina.out1,catalina.out2,catalina.out3...,默认50MB
stdout_logfile_backups = 100                            #stdout标准输出日志文件备份数,保存100个200MB的日志文件,超过100个后老的将被删除,默认为10保存10个
stdout_logfile=/usr/local/tomcat/logs/catalina.out      #标准日志输出位置,如果输出位置不存在则会启动失败
stopasgroup=false                                       #默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false                                       #默认为false,向进程组发送kill信号,包括子进程

3. 程序管理

supervisorctl status app                            #进程状态
supervisorctl stop app                               #停止进程
supervisorctl start app                              #启动进程
supervisorctl restart app                            #重启进程
# app替换为all可以控制所有进程

 4. supervisord开启起动配置

# vi /usr/lib/systemd/system/supervisord.service
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord/supervisord.conf

[Install]
WantedBy=multi-user.target
0条评论
作者已关闭评论
朱****帅
4文章数
0粉丝数
朱****帅
4 文章 | 0 粉丝
朱****帅
4文章数
0粉丝数
朱****帅
4 文章 | 0 粉丝
原创

使用supervisord管理进程

2023-10-27 07:20:51
16
0
1. 根据supervisor配置文件确定被管理进程的配置文件路径
# cat /etc/supervisord/supervisord.conf
[include]
files = conf.d/*.conf

在同级目录下的conf.d文件中,以conf结尾的配置文件将被管理

2. 被管理进程模版

# vi /etc/supervisord/conf.d/tomcat.conf
[program:tomcat]                                        #程序唯一名称
directory=/usr/local/tomcat                             #程序路径
command=/usr/local/tomcat/bin/catalina.sh run           #运行程序的命令
autostart=true                                          #是否在supervisord启动后tomcat也启动
startsecs=10                                            #启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true                                        #程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启;意思为如果不是supervisord来关闭的该进程则认为不正当关闭,supervisord会再次把该进程给启动起来,只能使用该supervisorctl来进行关闭、启动、重启操作 
startretries=3                                          #启动失败自动重试次数,默认是3
user=root                                               #用哪个用户启动进程,默认是root
priority=999                                            #进程启动优先级,默认999,假如Supervisord需要管理多个进程,那么值小的优先启动
stopsignal=INT
redirect_stderr=true                                    #把stderr重定向到stdout标准输出,默认false
stdout_logfile_maxbytes=200MB                           #stdout标准输出日志文件大小,日志文件大小到200M后则进行切割,切割后的日志文件会标示为catalina.out1,catalina.out2,catalina.out3...,默认50MB
stdout_logfile_backups = 100                            #stdout标准输出日志文件备份数,保存100个200MB的日志文件,超过100个后老的将被删除,默认为10保存10个
stdout_logfile=/usr/local/tomcat/logs/catalina.out      #标准日志输出位置,如果输出位置不存在则会启动失败
stopasgroup=false                                       #默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false                                       #默认为false,向进程组发送kill信号,包括子进程

3. 程序管理

supervisorctl status app                            #进程状态
supervisorctl stop app                               #停止进程
supervisorctl start app                              #启动进程
supervisorctl restart app                            #重启进程
# app替换为all可以控制所有进程

 4. supervisord开启起动配置

# vi /usr/lib/systemd/system/supervisord.service
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord/supervisord.conf

[Install]
WantedBy=multi-user.target
文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0