Supervisor守護進程安裝配置

    首先簡單瞭解下Supervisor, Supervisor(http://supervisord.org/)是用Python開發的一個client/server服務,是Linux/Unix系統下的一個進程管理工具,不支持Windows系統。它能夠很方便的監聽、啓動、中止、重啓一個或多個進程。用Supervisor管理的進程,當一個進程意外被殺死,supervisort監聽到進程死後,會自動將它從新拉起,很方便的作到進程自動恢復的功能,再也不須要本身寫shell腳原本控制。python

執行下面的命令,安裝python。shell

yum install python-setuptools
easy_install supervisor

在/etc/目錄下,建立supervisor文件夾。bash

mkdir /etc/supervisor

在該目錄下,生成supervisord.conf文件工具

echo_supervisord_conf > /etc/supervisor/supervisord.conf

修改/etc/supervisor/supervisord.conf文件內容,在文件中找到[include],把;去掉,把files = ./conf.d/*.conf.net

[include]
files=./conf.d/*.conf

而後,在conf.d目錄中,建立一個名爲helloworld.conf的文件,配置以下:命令行

[program: ProjectName]
command=dotnet helloworld.dll ; 運行程序的命令
directory=/wwwroot/demo/ ; 命令執行的目錄
autorestart=true ; 程序意外退出是否自動重啓
autostart=true ; 是否自動啓動
stderr_logfile=/var/log/ProjectName.err.log ; 錯誤日誌文件
stdout_logfile=/var/log/ProjectName.out.log ; 輸出日誌文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變量
user=root ; 進程執行的用戶身份
stopsignal=INT
startsecs=1 ; 自動重啓間隔

上面是以.net core程序爲例,建立一個守護進程的配置。rest

接下來,指定supervisor配置文件:日誌

supervisord -c /etc/supervisor/supervisord.conf

配置supervisor開機啓動code

sudo systemctl start supervisord.service

sudo systemctl enable supervisord.service

若是出現unit未找到,則能夠手動建立一個service文件,進入/lib/systemd/system目錄,並建立supervisor.service文件server

[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
systemctl enable supervisor.service
systemctl daemon-reload

supervisorctl 操做

supervisorctl 是 supervisord 的命令行客戶端工具,使用的配置和 supervisord 同樣,這裏就再也不說了。下面,主要介紹 supervisorctl 操做的經常使用命令:

輸入命令 supervisorctl 進入 supervisorctl 的 shell 交互界面(仍是純命令行),就能夠在下面輸入命令了。:

help # 查看幫助

status # 查看程序狀態

stop program_name # 關閉 指定的程序

start program_name # 啓動 指定的程序

restart program_name # 重啓 指定的程序

tail -f program_name # 查看 該程序的日誌

update # 重啓配置文件修改過的程序(修改了配置,經過這個命令加載新的配置)

也能夠直接經過 shell 命令操做:

相關文章
相關標籤/搜索