両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン |
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> |
| |
===== 参考文献 ===== | ===== 参考文献 ===== |