centos7安装supervisor

 

#下载安装supervisor

cd /opt

wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python

 

wget https://files.pythonhosted.org/packages/41/a8/41ac6efd240cde4d98068dd1b4a5172fea5dcee58d4f3496f75e40b927c6/supervisor-4.0.4.tar.gz

tar zxvf supervisor-4.0.4.tar.gz

cd supervisor-4.0.4/

python setup.py install

 

 

#创建supervisor文件夹 不建议放在别的目录 supervisorctl会有python的报错

mkdir /etc/supervisor

#生成配置文件

 

echo_supervisord_conf > /etc/supervisor/supervisord.conf

 

#创建程序配置文件文件夹

mkdir /etc/supervisor/config.d

 

#修改配置文件不建议开启9001端口 ;为注释符

cat >/etc/supervisor/supervisord.conf <<EOF

; Sample supervisor config file.

;

; For more information on the config file, please see:

; http://supervisord.org/configuration.html

;

; Notes:

;  - Shell expansion ("~" or "$HOME") is not supported.  Environment

;    variables can be expanded using this syntax: "%(ENV_HOME)s".

;  - Quotes around values are not supported, except in the case of

;    the environment= options as shown below.

;  - Comments must have a leading space: "a=b ;comment" not "a=b;comment".

;  - Command will be truncated if it looks like a config file comment, e.g.

;    "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ".

;

; Warning:

;  Paths throughout this example file use /tmp because it is available on most

;  systems.  You will likely need to change these to locations more appropriate

;  for your system.  Some systems periodically delete older files in /tmp.

;  Notably, if the socket file defined in the [unix_http_server] section below

;  is deleted, supervisorctl will be unable to connect to supervisord.

 

[unix_http_server]

file=/var/run/supervisor.sock   ; the path to the socket file

;chmod=0700                 ; socket file mode (default 0700)

;chown=nobody:nogroup       ; socket file uid:gid owner

;username=user              ; default is no username (open server)

;password=123               ; default is no password (open server)

 

; Security Warning:

;  The inet HTTP server is not enabled by default.  The inet HTTP server is

;  enabled by uncommenting the [inet_http_server] section below.  The inet

;  HTTP server is intended for use within a trusted environment only.  It

;  should only be bound to localhost or only accessible from within an

;  isolated, trusted network.  The inet HTTP server does not support any

;  form of encryption.  The inet HTTP server does not use authentication

;  by default (see the username= and password= options to add authentication).

;  Never expose the inet HTTP server to the public internet.

 

[inet_http_server]         ; inet (TCP) server disabled by default

port=10.6.12.18:9001        ; ip_address:port specifier, *:port for all iface

username=user              ; default is no username (open server)

password=123               ; default is no password (open server)

 

[supervisord]

logfile=/var/log/supervisord.log ; main log file; default $CWD/supervisord.log

logfile_maxbytes=200MB        ; max main logfile bytes b4 rotation; default 50MB

logfile_backups=10           ; # of main logfile backups; 0 means none, default 10

loglevel=info                ; log level; default info; others: debug,warn,trace

pidfile=/var/run/supervisord.pid ; supervisord pidfile; default supervisord.pid

nodaemon=false               ; start in foreground if true; default false

minfds=1024                  ; min. avail startup file descriptors; default 1024

minprocs=200                 ; min. avail process descriptors;default 200

;umask=022                   ; process file creation umask; default 022

;user=supervisord            ; setuid to this UNIX account at startup; recommended if root

;identifier=supervisor       ; supervisord identifier, default is 'supervisor'

;directory=/tmp              ; default is not to cd during start

;nocleanup=true              ; don't clean up tempfiles at start; default false

;childlogdir=/tmp            ; 'AUTO' child log dir, default $TEMP

;environment=KEY="value"     ; key value pairs to add to environment

;strip_ansi=false            ; strip ansi escape codes in logs; def. false

 

; The rpcinterface:supervisor 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:x] sections.

 

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

 

; The supervisorctl section configures how supervisorctl will connect to

; supervisord.  configure it match the settings in either the unix_http_server

; or inet_http_server section.

 

[supervisorctl]

serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket

;username=chris              ; should be same as in [*_http_server] if set

;password=123                ; should be same as in [*_http_server] if set

;prompt=mysupervisor         ; cmd line prompt (default "supervisor")

;history_file=~/.sc_history  ; use readline history if available

 

; The sample program section below shows all possible program subsection values.

; Create one or more 'real' program: sections to be able to control them under

; supervisor.

 

;[program:theprogramname]

;command=/bin/cat              ; the program (relative uses PATH, can take args)

;process_name=%(program_name)s ; process_name expr (default %(program_name)s)

;numprocs=1                    ; number of processes copies to start (def 1)

;directory=/tmp                ; directory to cwd to before exec (def no cwd)

;umask=022                     ; umask for process (default None)

;priority=999                  ; the relative start priority (default 999)

;autostart=true                ; start at supervisord start (default: true)

;startsecs=1                   ; # of secs prog must stay up to be running (def. 1)

;startretries=3                ; max # of serial start failures when starting (default 3)

;autorestart=unexpected        ; when to restart if exited after running (def: unexpected)

;exitcodes=0                   ; 'expected' exit codes used with autorestart (default 0)

;stopsignal=QUIT               ; signal used to kill process (default TERM)

;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)

;stopasgroup=false             ; send stop signal to the UNIX process group (default false)

;killasgroup=false             ; SIGKILL the UNIX process group (def false)

;user=chrism                   ; setuid to this UNIX account to run the program

;redirect_stderr=true          ; redirect proc stderr to stdout (default false)

;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO

;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)

;stdout_logfile_backups=10     ; # of stdout logfile backups (0 means none, default 10)

;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)

;stdout_events_enabled=false   ; emit events on stdout writes (default false)

;stdout_syslog=false           ; send stdout to syslog with process name (default false)

;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO

;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)

;stderr_logfile_backups=10     ; # of stderr logfile backups (0 means none, default 10)

;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)

;stderr_events_enabled=false   ; emit events on stderr writes (default false)

;stderr_syslog=false           ; send stderr to syslog with process name (default false)

;environment=A="1",B="2"       ; process environment additions (def no adds)

;serverurl=AUTO                ; override serverurl computation (childutils)

 

; The sample eventlistener section below shows all possible eventlistener

; subsection values.  Create one or more 'real' eventlistener: sections to be

; able to handle event notifications sent by supervisord.

 

;[eventlistener:theeventlistenername]

;command=/bin/eventlistener    ; the program (relative uses PATH, can take args)

;process_name=%(program_name)s ; process_name expr (default %(program_name)s)

;numprocs=1                    ; number of processes copies to start (def 1)

;events=EVENT                  ; event notif. types to subscribe to (req'd)

;buffer_size=10                ; event buffer queue size (default 10)

;directory=/tmp                ; directory to cwd to before exec (def no cwd)

;umask=022                     ; umask for process (default None)

;priority=-1                   ; the relative start priority (default -1)

;autostart=true                ; start at supervisord start (default: true)

;startsecs=1                   ; # of secs prog must stay up to be running (def. 1)

;startretries=3                ; max # of serial start failures when starting (default 3)

;autorestart=unexpected        ; autorestart if exited after running (def: unexpected)

;exitcodes=0                   ; 'expected' exit codes used with autorestart (default 0)

;stopsignal=QUIT               ; signal used to kill process (default TERM)

;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)

;stopasgroup=false             ; send stop signal to the UNIX process group (default false)

;killasgroup=false             ; SIGKILL the UNIX process group (def false)

;user=chrism                   ; setuid to this UNIX account to run the program

;redirect_stderr=false         ; redirect_stderr=true is not allowed for eventlisteners

;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO

;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)

;stdout_logfile_backups=10     ; # of stdout logfile backups (0 means none, default 10)

;stdout_events_enabled=false   ; emit events on stdout writes (default false)

;stdout_syslog=false           ; send stdout to syslog with process name (default false)

;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO

;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)

;stderr_logfile_backups=10     ; # of stderr logfile backups (0 means none, default 10)

;stderr_events_enabled=false   ; emit events on stderr writes (default false)

;stderr_syslog=false           ; send stderr to syslog with process name (default false)

;environment=A="1",B="2"       ; process environment additions

;serverurl=AUTO                ; override serverurl computation (childutils)

 

; The sample group section below shows all possible group values.  Create one

; or more 'real' group: sections to create "heterogeneous" process groups.

 

;[group:thegroupname]

;programs=progname1,progname2  ; each refers to 'x' in [program:x] definitions

;priority=999                  ; the relative start priority (default 999)

 

; 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/config.d/*.conf 

EOF

 

#创建supervisor系统服务

cd /lib/systemd/system

cat > /lib/systemd/system/supervisor.service<<EOF

[Unit]

Description=supervisor

After=network.target

 

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf

ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown

ExecReload=/usr/bin/supervisorctl $OPTIONS reload

KillMode=process

Restart=on-failure

RestartSec=42s

 

[Install]

WantedBy=multi-user.target

EOF

 

 

#修改启动supervisor用户的权限

chmod 766 supervisor.service

#创建supervisor服务

systemctl enable supervisor.service

systemctl daemon-reload

 

 

 

 

#启动supervisor

 

supervisord -c /etc/supervisor/supervisord.conf

#如果启动报sock错创建supervisor.sock

touch /var/run/supervisor.sock

 

 

#登录9001端口 http://10.6.12.18:9001/

#输入配置的密码user/123 出现下面的界面

 

 

 

 

 

 

 

#杀死supervisor进程方式

ps -ef |grep super |grep -v 'grep' |awk  '{print $2}'|xargs kill -9

 

 

 

 

#添加tomcat守护进程测试 演示在测试环境测试

 

cd /etc/supervisor/config.d/

创建一个conf

cat >/etc/supervisor/config.d/test.conf<<EOF

[program:test]

command=/usr/local/tomcat/bin/catalina.sh run

user=root

#autostart=true

#autorestart=true

redirect_stderr=true

startsecs=0

stopsignal=TERM

stopasgroup=true

stdout_logfile_maxbytes=20MB

stdout_logfile_backups=20

stdout_logfile=/var/log/testtomcat.log

EOF

 

 

 

#更新supervisor的任务 任务名称为[program:test]的内容

supervisorctl update

#update之后如果设置autostart=true会默认启动一次服务

 

#测试stop进程并重新start

 

 

# kill当前进程 autorestart=true新进程会启动

#测试

cat >/etc/supervisor/config.d/ngx.conf<<EOF

[program:ngx]

command=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -g 'daemon off;'

stdout_logfile=/var/log/ngx.log

redirect_stderr=true

stdout_logfile_maxbytes=50MB

stdout_logfile_backups=5

autostart=true

autorestart=true

startsecs=5

priority=1

stopasgroup=true

killasgroup=true

directory=/usr/local/nginx

EOF

 

supervisorctl update

#启动停止ngx

#kill master和worker进程  自动重启成功

 

#界面也可以操作 重启  停止 清除日志 查看日志

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷来辣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值