## Supervisord
Supervisord 是用 Python 實現的一款非常實用的進程管理工具,supervisord 還要求管理的程序是非 daemon 程序,supervisord 會幫你把它轉成 daemon 程序。
## 安裝
- [https://www.cnblogs.com/dadonggg/p/8297516.html](https://www.cnblogs.com/dadonggg/p/8297516.html)
## 修改配置 `/etc/supervisord.conf`
包含 `/etc/supervisord.conf.d` 目錄下所有配置。
~~~
[include]
files = /etc/supervisord.conf.d/*.conf
~~~
新建 `mixweb.conf`
~~~
cd /etc/supervisord.conf.d
vim mixweb.conf
~~~
配置文件:
~~~
[program:mixapi]
directory = /data/mix
command = /data/mix/bin/mixapp
autostart = true
autorestart=true
startsecs = 5
startretries=3
user = www
redirect_stderr = true
stdout_logfile = /var/log/supervisord/mixapi.log
~~~
## supervisord 管理
Supervisord 安裝完成后有兩個可用的命令行 supervisord 和 supervisorctl,命令使用解釋如下:
* supervisord,初始啟動 Supervisord,啟動、管理配置中設置的進程。
* supervisorctl stop ***,停止某一個進程(xxx),xxx 為 [program:mixweb] 里配置的值,這個示例就是 mixweb。
* supervisorctl start ***,啟動某個進程
* supervisorctl restart ***,重啟某個進程
* supervisorctl stop groupworker: ,重啟所有屬于名為 groupworker 這個分組的進程(start,restart 同理)
* supervisorctl stop all,停止全部進程,注:start、restart、stop 都不會載入最新的配置文件。
* supervisorctl reload,載入最新的配置文件,停止原有進程并按新的配置啟動、管理所有進程。
* supervisorctl update,根據最新的配置文件,啟動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啟。