| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン |
| python:supervisor [2023/03/13 06:46] – [参考文献] ともやん | python:supervisor [2023/03/15 06:03] (現在) – [☢️古い資料です☢️] ともやん |
|---|
| </pre></html></WRAP> | </pre></html></WRAP> |
| <WRAP color_result><html><pre> | <WRAP color_result><html><pre> |
| <b class=GRN>●</b> supervisord.service - Process Monitoring and Control Daemon | <b class=HIG>●</b> supervisord.service - Process Monitoring and Control Daemon |
| Loaded: loaded (/usr/lib/systemd/system/supervisord.service; <b class=GRN>enabled</b>; preset: <b class=HIY>disabled</b>) | Loaded: loaded (<a href="file://WICKED-BEAT/usr/lib/systemd/system/supervisord.service">/usr/lib/systemd/system/supervisord.service</a>; <b class=HIG>enabled</b>; preset: <b class="BOLD" style="color:#d7d75f;">disabled</b>) |
| Active: <b class=GRN>active (running)</b> since Mon 2023-03-13 06:34:05 JST; 6s ago | Active: <b class=HIG>active (running)</b> since Mon 2023-03-13 06:34:05 JST; 6s ago |
| Process: 21987 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS) | Process: 107602 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS) |
| Main PID: 21989 (supervisord) | Main PID: 107605 (supervisord) |
| Tasks: 1 (limit: 19013) | Tasks: 1 (limit: 19013) |
| Memory: 23.5M | Memory: 23.5M |
| CPU: 515ms | CPU: 515ms |
| CGroup: /system.slice/supervisord.service | CGroup: /system.slice/supervisord.service |
| └─21989 /usr/bin/python3 /usr/bin/supervisord -c /etc/supervisord.conf | └─<b style="color:#8a8a8a;">21989 /usr/bin/python3 /usr/bin/supervisord -c /etc/supervisord.conf</b> |
| |
| 3月 13 06:34:04 WICKED-BEAT systemd[1]: Starting supervisord.service - Process Monitoring and Control Daemon... | 3月 13 06:34:04 WICKED-BEAT systemd[1]: Starting supervisord.service - Process Monitoring and Control Daemon... |
| </code> | </code> |
| </WRAP> | </WRAP> |
| |
| ===== 自動起動設定 ===== | |
| <code> | |
| $ sudo systemctl enable supervisord.service | |
| </code> | |
| |
| ===== Supervisord の設定 ===== | ===== Supervisord の設定 ===== |
| <code> | <WRAP color_term> |
| $ sudo vi /etc/supervisord.conf | <WRAP color_command><html><pre> |
| </code> | <b class=GRN>$</b> <b class=HIY>sudo</b> nano /etc/supervisord.conf |
| <code ini> | </pre></html></WRAP> |
| ;[unix_http_server] | </WRAP> |
| ;file=/var/run/supervisor/supervisor.sock ; (the path to the socket file) | |
| |
| [inet_http_server] ; inet (TCP) server disabled by default | デフォルトでは UNIX ドメインソケットの設定になっているので...🤔\\ |
| port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface) | <WRAP color_term> |
| </code> | <WRAP color_mincode><code ini> |
| ====== 古い資料です ====== | |
| ===== パッケージ インストール ===== | |
| <code> | |
| $ sudo pip install supervisor | |
| </code> | |
| | |
| ===== rc スクリプトの作成 ===== | |
| <code> | |
| sudo vi /etc/init.d/supervisord | |
| </code> | |
| <code bash> | |
| #!/bin/bash | |
| # | |
| # supervisord Startup script for the Supervisor | |
| # | |
| # chkconfig: - 70 60 | |
| # description: Supervisor is a client/server system that allows its users to \ | |
| # monitor and control a number of processes on UNIX-like operating systems. | |
| # processname: supervisord | |
| # config: /etc/sysconfig/supervisord | |
| # pidfile: /var/run/supervisord/supervisord.pid | |
| # | |
| ### BEGIN INIT INFO | |
| # Provides: supervisord | |
| # Short-Description: start and stop Supervisor | |
| # Description: Supervisor is a client/server system that allows its users to | |
| # monitor and control a number of processes on UNIX-like operating systems. | |
| ### END INIT INFO | |
| | |
| # Source function library. | |
| . /etc/rc.d/init.d/functions | |
| | |
| if [ -f /etc/sysconfig/supervisord ]; then | |
| . /etc/sysconfig/supervisord | |
| fi | |
| | |
| supervisord=${SUPERVISORD-/usr/bin/supervisord} | |
| prog=supervisord | |
| pidfile=${PIDFILE-/var/run/supervisor/supervisor.pid} | |
| lockfile=${LOCKFILE-/var/lock/subsys/supervisord} | |
| RETVAL=0 | |
| STOP_TIMEOUT=${STOP_TIMEOUT-3} | |
| | |
| start() { | |
| echo -n $"Starting $prog: " | |
| daemon $supervisord --pidfile=${pidfile} | |
| RETVAL=$? | |
| echo | |
| [ $RETVAL = 0 ] && touch ${lockfile} | |
| return $RETVAL | |
| } | |
| | |
| stop() { | |
| echo -n $"Stopping $prog: " | |
| killproc -p ${pidfile} -d ${STOP_TIMEOUT} $supervisord -QUIT | |
| RETVAL=$? | |
| echo | |
| [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} | |
| } | |
| | |
| reload() { | |
| echo -n $"Reloading $prog: " | |
| killproc -p $pidfile $supervisord -HUP | |
| RETVAL=$? | |
| echo | |
| } | |
| | |
| # See how we were called. | |
| case "$1" in | |
| start) | |
| start | |
| ;; | |
| stop) | |
| stop | |
| ;; | |
| status) | |
| status -p ${pidfile} $supervisord | |
| RETVAL=$? | |
| ;; | |
| restart) | |
| stop | |
| start | |
| ;; | |
| reload) | |
| reload | |
| ;; | |
| *) | |
| echo $"Usage: $prog {start|stop|restart|reload|status}" | |
| RETVAL=2 | |
| esac | |
| | |
| exit $RETVAL | |
| </code> | |
| | |
| | |
| ===== 環境設定 ===== | |
| rc スクリプトのパーミッション設定を行う。 | |
| <code> | |
| $ sudo chmod 755 /etc/init.d/supervisord | |
| </code> | |
| | |
| pid、logファイルの生成ディレクトリを作成する。 | |
| <code> | |
| $ sudo mkdir /var/run/supervisord | |
| $ sudo mkdir /var/log/supervisord | |
| </code> | |
| | |
| サービスを登録する。 | |
| <code> | |
| $ sudo chkconfig --add supervisord | |
| $ sudo chkconfig supervisord on | |
| $ chkconfig --list supervisord | |
| supervisord 0:off 1:off 2:on 3:on 4:on 5:on 6:off | |
| </code> | |
| | |
| ===== supervisordの設定 ===== | |
| 設定ファイルを生成する。 | |
| <code> | |
| $ sudo sh -c 'echo_supervisord_conf > /etc/supervisord.conf' | |
| </code> | |
| | |
| <code> | |
| sudo vi /etc/supervisord.conf | |
| </code> | |
| <code> | |
| [unix_http_server] | [unix_http_server] |
| ;file=/tmp/supervisor.sock ; (the path to the socket file) | file=/run/supervisor/supervisor.sock ; (the path to the socket file) |
| ;chmod=0700 ; socket file mode (default 0700) | ;chmod=0700 ; sockef file mode (default 0700) |
| ;chown=nobody:nogroup ; socket file uid:gid owner | ;chown=nobody:nogroup ; socket file uid:gid owner |
| file=/var/run/supervisord/supervisord.sock | ;username=user ; (default is no username (open server)) |
| chmod=0666 | ;password=123 ; (default is no password (open server)) |
| chown=nobody:nobody | |
| |
| [supervisord] | ;[inet_http_server] ; inet (TCP) server disabled by default |
| ;logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log) | ;port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface) |
| logfile=/var/log/supervisord/supervisord.log | ;username=user ; (default is no username (open server)) |
| ;pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid) | ;password=123 ; (default is no password (open server)) |
| pidfile=/var/run/supervisord/supervisord.pid | </code></WRAP> |
| | </WRAP> |
| |
| [supervisorctl] | [[http://localhost:9001|]] で使える設定に変更する🤔\\ |
| ;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket | <WRAP color_term> |
| serverurl=unix:///var/run/supervisord/supervisord.sock | <WRAP color_mincode><code ini> |
| | ;[unix_http_server] |
| | ;file=/run/supervisor/supervisor.sock ; (the path to the socket file) |
| | ;chmod=0700 ; sockef 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)) |
| |
| ;[include] | [inet_http_server] ; inet (TCP) server disabled by default |
| ;files = relative/directory/*.ini | port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface) |
| [include] | ;username=user ; (default is no username (open server)) |
| files = supervisor.d/*.ini | ;password=123 ; (default is no password (open server)) |
| </code> | </code></WRAP> |
| ===== supervisordで管理するプロセスの設定 ===== | </WRAP> |
| プロセス設定を格納するディレクトリを作成する。 | |
| <code> | |
| $ sudo mkdir /etc/supervisor.d | |
| </code> | |
| |
| | <WRAP color_term> |
| | <WRAP color_command><html><pre> |
| | <b class=GRN>$</b> <b class=HIY>sudo</b> systemctl restart supervisord |
| | <b class=GRN>$</b> <b class=HIY>systemctl</b> status supervisord |
| | </pre></html></WRAP> |
| | <WRAP color_command><html><pre> |
| | <b class=HIG>●</b> supervisord.service - Process Monitoring and Control Daemon |
| | Loaded: loaded (<a href="file://WICKED-BEAT/usr/lib/systemd/system/supervisord.service">/usr/lib/systemd/system/supervisord.service</a>; <b class=HIG>enabled</b>; preset: <b class="BOLD" style="color:#d7d75f;">disabled</b>) |
| | Active: <b class=HIG>active (running)</b> since Wed 2023-03-15 04:46:56 JST; 7min ago |
| | Process: 107602 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS) |
| | Main PID: 107605 (supervisord) |
| | Tasks: 1 (limit: 19013) |
| | Memory: 21.9M |
| | CPU: 536ms |
| | CGroup: /system.slice/supervisord.service |
| | └─<b style="color:#8a8a8a;">107605 /usr/bin/python3 /usr/bin/supervisord -c /etc/supervisord.conf</b> |
| |
| ===== サービスの起動 ===== | 3月 15 04:46:55 WICKED-BEAT systemd[1]: Starting supervisord.service - Process Monitoring and Control Daemon... |
| <code> | 3月 15 04:46:56 WICKED-BEAT systemd[1]: Started supervisord.service - Process Monitoring and Control Daemon. |
| $ sudo service supervisord start | </pre></html></WRAP> |
| supervisord を起動中: [ OK ] | </WRAP> |
| </code> | [[http://localhost:9001|]] にアクセスして動作確認😉\\ |
| | {{:python:supervisord_http_server_001.png|supervisord http server}}\\ |
| ===== Nginx の設定 ===== | |
| /etc/nginx/conf.d/localhost.conf | |
| <code autoconf> | |
| # supervisor バックエンドの設定 | |
| upstream supervisor { | |
| server unix:/var/run/supervisord/supervisord.sock; | |
| } | |
| |
| server { | ===== 付録 ===== |
| # Virtual Host の設定 | |
| server_name localhost; | |
| # アクセス制限 | |
| allow 127.0.0.1; | |
| deny all; | |
| |
| # supervisor の設定 | ==== 標準パッケージの内容 ==== |
| location / { | |
| proxy_set_header Host $http_host; | |
| proxy_pass http://supervisor; | |
| | |
| allow 127.0.0.1; | |
| deny all; | |
| } | |
| } | |
| </code> | |
| ===== 付録 ===== | |
| Fedora 標準パッケージでインストールされるファイルの一覧は以下の内容です🤔\\ | Fedora 標準パッケージでインストールされるファイルの一覧は以下の内容です🤔\\ |
| <WRAP color_term> | <WRAP color_term> |
| </pre></html></WRAP> | </pre></html></WRAP> |
| </WRAP> | </WRAP> |
| | |
| | ==== supervisord.service ==== |
| | <WRAP color_term> |
| | <WRAP color_command><html><pre> |
| | <b class=GRN>$</b> <b class=HIY>cat</b> /usr/lib/systemd/system/supervisord.service |
| | </pre></html></WRAP> |
| | <WRAP color_mincode><code autoconf /usr/lib/systemd/system/supervisord.service> |
| | [Unit] |
| | Description=Process Monitoring and Control Daemon |
| | After=rc-local.service |
| | |
| | [Service] |
| | Type=forking |
| | ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf |
| | RuntimeDirectory=supervisor |
| | RuntimeDirectoryMode=755 |
| | |
| | [Install] |
| | WantedBy=multi-user.target |
| | </code></WRAP> |
| | </WRAP> |
| | |
| | ==== supervisord.conf ==== |
| | <WRAP color_term> |
| | <WRAP color_command><html><pre> |
| | <b class=GRN>$</b> <b class=HIY>cat</b> /etc/supervisord.conf |
| | </pre></html></WRAP> |
| | <WRAP color_mincode_long><code ini /etc/supervisord.conf> |
| | ; Sample supervisor config file. |
| | |
| | [unix_http_server] |
| | file=/run/supervisor/supervisor.sock ; (the path to the socket file) |
| | ;chmod=0700 ; sockef 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)) |
| | |
| | ;[inet_http_server] ; inet (TCP) server disabled by default |
| | ;port=127.0.0.1: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/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) |
| | logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB) |
| | logfile_backups=10 ; (num of main logfile rotation backups;default 10) |
| | loglevel=info ; (log level;default info; others: debug,warn,trace) |
| | pidfile=/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=chrism ; (default is current user, required 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 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:///run/supervisor/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 http_username if set |
| | ;password=123 ; should be same as http_password if set |
| | ;prompt=mysupervisor ; cmd line prompt (default "supervisor") |
| | ;history_file=~/.sc_history ; use readline history if available |
| | |
| | ; The below sample program section 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) |
| | ;autorestart=true ; retstart at unexpected quit (default: true) |
| | ;startsecs=10 ; number of secs prog must stay running (def. 1) |
| | ;startretries=3 ; max # of serial start failures (default 3) |
| | ;exitcodes=0,2 ; 'expected' exit codes for process (default 0,2) |
| | ;stopsignal=QUIT ; signal used to kill process (default TERM) |
| | ;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) |
| | ;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 (default 10) |
| | ;stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) |
| | ;stdout_events_enabled=false ; emit events on stdout writes (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 (default 10) |
| | ;stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) |
| | ;stderr_events_enabled=false ; emit events on stderr writes (default false) |
| | ;environment=A=1,B=2 ; process environment additions (def no adds) |
| | ;serverurl=AUTO ; override serverurl computation (childutils) |
| | |
| | ; The below sample eventlistener section shows all possible |
| | ; eventlistener subsection values, create one or more 'real' |
| | ; eventlistener: sections to be able to handle event notifications |
| | ; sent by supervisor. |
| | |
| | ;[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) |
| | ;autorestart=unexpected ; restart at unexpected quit (default: unexpected) |
| | ;startsecs=10 ; number of secs prog must stay running (def. 1) |
| | ;startretries=3 ; max # of serial start failures (default 3) |
| | ;exitcodes=0,2 ; 'expected' exit codes for process (default 0,2) |
| | ;stopsignal=QUIT ; signal used to kill process (default TERM) |
| | ;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) |
| | ;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 (default 10) |
| | ;stdout_events_enabled=false ; emit events on stdout writes (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 ; # of stderr logfile backups (default 10) |
| | ;stderr_events_enabled=false ; emit events on stderr writes (default false) |
| | ;environment=A=1,B=2 ; process environment additions |
| | ;serverurl=AUTO ; override serverurl computation (childutils) |
| | |
| | ; The below sample group section 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 = supervisord.d/*.ini |
| | </code></WRAP> |
| | </WRAP> |
| | |
| | ====== ☢️古い資料です (Obsolete)☢️ ====== |
| | |
| | ===== パッケージ インストール ===== |
| | <code> |
| | $ sudo pip install supervisor |
| | </code> |
| | |
| | ===== rc スクリプトの作成 ===== |
| | <code> |
| | sudo vi /etc/init.d/supervisord |
| | </code> |
| | <code bash> |
| | #!/bin/bash |
| | # |
| | # supervisord Startup script for the Supervisor |
| | # |
| | # chkconfig: - 70 60 |
| | # description: Supervisor is a client/server system that allows its users to \ |
| | # monitor and control a number of processes on UNIX-like operating systems. |
| | # processname: supervisord |
| | # config: /etc/sysconfig/supervisord |
| | # pidfile: /var/run/supervisord/supervisord.pid |
| | # |
| | ### BEGIN INIT INFO |
| | # Provides: supervisord |
| | # Short-Description: start and stop Supervisor |
| | # Description: Supervisor is a client/server system that allows its users to |
| | # monitor and control a number of processes on UNIX-like operating systems. |
| | ### END INIT INFO |
| | |
| | # Source function library. |
| | . /etc/rc.d/init.d/functions |
| | |
| | if [ -f /etc/sysconfig/supervisord ]; then |
| | . /etc/sysconfig/supervisord |
| | fi |
| | |
| | supervisord=${SUPERVISORD-/usr/bin/supervisord} |
| | prog=supervisord |
| | pidfile=${PIDFILE-/var/run/supervisor/supervisor.pid} |
| | lockfile=${LOCKFILE-/var/lock/subsys/supervisord} |
| | RETVAL=0 |
| | STOP_TIMEOUT=${STOP_TIMEOUT-3} |
| | |
| | start() { |
| | echo -n $"Starting $prog: " |
| | daemon $supervisord --pidfile=${pidfile} |
| | RETVAL=$? |
| | echo |
| | [ $RETVAL = 0 ] && touch ${lockfile} |
| | return $RETVAL |
| | } |
| | |
| | stop() { |
| | echo -n $"Stopping $prog: " |
| | killproc -p ${pidfile} -d ${STOP_TIMEOUT} $supervisord -QUIT |
| | RETVAL=$? |
| | echo |
| | [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} |
| | } |
| | |
| | reload() { |
| | echo -n $"Reloading $prog: " |
| | killproc -p $pidfile $supervisord -HUP |
| | RETVAL=$? |
| | echo |
| | } |
| | |
| | # See how we were called. |
| | case "$1" in |
| | start) |
| | start |
| | ;; |
| | stop) |
| | stop |
| | ;; |
| | status) |
| | status -p ${pidfile} $supervisord |
| | RETVAL=$? |
| | ;; |
| | restart) |
| | stop |
| | start |
| | ;; |
| | reload) |
| | reload |
| | ;; |
| | *) |
| | echo $"Usage: $prog {start|stop|restart|reload|status}" |
| | RETVAL=2 |
| | esac |
| | |
| | exit $RETVAL |
| | </code> |
| | |
| | |
| | ===== 環境設定 ===== |
| | rc スクリプトのパーミッション設定を行う。 |
| | <code> |
| | $ sudo chmod 755 /etc/init.d/supervisord |
| | </code> |
| | |
| | pid、logファイルの生成ディレクトリを作成する。 |
| | <code> |
| | $ sudo mkdir /var/run/supervisord |
| | $ sudo mkdir /var/log/supervisord |
| | </code> |
| | |
| | サービスを登録する。 |
| | <code> |
| | $ sudo chkconfig --add supervisord |
| | $ sudo chkconfig supervisord on |
| | $ chkconfig --list supervisord |
| | supervisord 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
| | </code> |
| | |
| | ===== supervisordの設定 ===== |
| | 設定ファイルを生成する。 |
| | <code> |
| | $ sudo sh -c 'echo_supervisord_conf > /etc/supervisord.conf' |
| | </code> |
| | |
| | <code> |
| | sudo vi /etc/supervisord.conf |
| | </code> |
| | <code> |
| | [unix_http_server] |
| | ;file=/tmp/supervisor.sock ; (the path to the socket file) |
| | ;chmod=0700 ; socket file mode (default 0700) |
| | ;chown=nobody:nogroup ; socket file uid:gid owner |
| | file=/var/run/supervisord/supervisord.sock |
| | chmod=0666 |
| | chown=nobody:nobody |
| | |
| | [supervisord] |
| | ;logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log) |
| | logfile=/var/log/supervisord/supervisord.log |
| | ;pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid) |
| | pidfile=/var/run/supervisord/supervisord.pid |
| | |
| | [supervisorctl] |
| | ;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket |
| | serverurl=unix:///var/run/supervisord/supervisord.sock |
| | |
| | ;[include] |
| | ;files = relative/directory/*.ini |
| | [include] |
| | files = supervisor.d/*.ini |
| | </code> |
| | ===== supervisordで管理するプロセスの設定 ===== |
| | プロセス設定を格納するディレクトリを作成する。 |
| | <code> |
| | $ sudo mkdir /etc/supervisor.d |
| | </code> |
| | |
| | |
| | ===== サービスの起動 ===== |
| | <code> |
| | $ sudo service supervisord start |
| | supervisord を起動中: [ OK ] |
| | </code> |
| | |
| | ===== Nginx の設定 ===== |
| | /etc/nginx/conf.d/localhost.conf |
| | <code autoconf> |
| | # supervisor バックエンドの設定 |
| | upstream supervisor { |
| | server unix:/var/run/supervisord/supervisord.sock; |
| | } |
| | |
| | server { |
| | # Virtual Host の設定 |
| | server_name localhost; |
| | # アクセス制限 |
| | allow 127.0.0.1; |
| | deny all; |
| | |
| | # supervisor の設定 |
| | location / { |
| | proxy_set_header Host $http_host; |
| | proxy_pass http://supervisor; |
| | |
| | allow 127.0.0.1; |
| | deny all; |
| | } |
| | } |
| | </code> |
| |
| ===== 参考文献 ===== | ===== 参考文献 ===== |