supervisor 筆記

1. 安裝supervisor
$ sudo dnf install supervisorhtml

2. 配置supervisor
安裝完supervisor後,輸入如下命令可獲得配置文件:
echo_supervisord_conf > /etc/supervisord.confvim

在etc下建立目錄,並賦權限
mkdir -m 700 -p /etc/supervisor瀏覽器

在目錄「 /etc/supervisor」下建立配置文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf工具

修改配置文件
vim /etc/supervisor/supervisord.conf測試

在文件末尾添加,注意首尾需無空格,需頂格
[include]
files=/etc/supervisor/conf.d/*.conf
在目錄「/etc/supervisor」下建立dotnet core 進程配置文件存放目錄「conf.d」
mkdir -m 700 /etc/supervisor/conf.dspa

3. 配置應用.net

在/ect/supervisor/conf.d/ 目錄下新建一個配置文件(touch HelloWebApp.conf),取名爲 HelloWebApp.conf命令行

打開HelloWebApp.conf (vim HelloWebApp.conf),寫入以下命令:
[program:xiuya]
command=dotnet xiuya.dll #要執行的命令
directory=/home/code/xiuya/bin/Release #命令執行的目錄
environment=ASPNETCORE__ENVIRONMENT=Production #環境變量
user=www-data #進程執行的用戶身份
stopsignal=INT
autostart=true #是否自動啓動
autorestart=true #是否自動重啓
startsecs=1 #自動重啓間隔
stderr_logfile=/var/log/xiuya.err.log #標準錯誤日誌
stdout_logfile=/var/log/xiuya.out.log #標準輸出日誌rest

4. 運行日誌

sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf

若是啓動的時候報錯,能夠打開位於/etc/log/supervisor/supervisord.log文件來查看具體的日誌。

其中dotnet 命令輸出的日誌文件分別爲位於

/var/log/HelloWebApp.err.log
/var/log/HelloWebApp.out.log
在這些文件裏面你能夠查看程序中的異常信息或者是運行信息。

打開瀏覽器,輸入 http://localhost:5000 發現已經能夠瀏覽了。


5. Supervisor UI 管理臺

Supervisor 默認給咱們提供了一個圖形界面來供咱們管理進程和任務,在 macOS 中默認配置的有,可是在 Linux 中咱們須要手動開啓一下。

打開位於/etc/supervisor/supervisord.conf文件,添加inet_http_server 節點
而後就能夠經過界面來查看運行的進程了:

測試一下

最後,咱們測試一下是否會自動重啓,開機自動運行?

一、進程管理中幹掉dot net ,發現能夠從新啓動。如下是日誌:

2016-07-09 12:24:18,626 INFO spawned: 'HelloWebApp' with pid 1774
2016-07-09 12:24:19,766 INFO success: HelloWebApp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 12:27:43,208 INFO exited: HelloWebApp (exit status 0; expected)
2016-07-09 12:27:44,223 INFO spawned: 'HelloWebApp' with pid 3687
2016-07-09 12:27:45,243 INFO success: HelloWebApp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
二、重啓機器,發現能夠自動運行。

 

 

6. supervisorctl管理

Supervisord安裝完成後有兩個可用的命令行supervisor和supervisorctl,命令使用解釋以下:

supervisord,初始啓動Supervisord,啓動、管理配置中設置的進程。
supervisorctl stop programxxx,中止某一個進程(programxxx),programxxx爲[program:chatdemon]裏配置的值,這個示例就是chatdemon。
supervisorctl start programxxx,啓動某個進程
supervisorctl restart programxxx,重啓某個進程
supervisorctl stop groupworker: ,重啓全部屬於名爲groupworker這個分組的進程(start,restart同理)
supervisorctl stop all,中止所有進程,注:start、restart、stop都不會載入最新的配置文件。
supervisorctl reload,載入最新的配置文件,中止原有進程並按新的配置啓動、管理全部進程。
supervisorctl update,根據最新的配置文件,啓動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啓。
注意:顯示用stop中止掉的進程,用reload或者update都不會自動重啓。

 

 

 

 

參考資料:

ASP.NET Core Linux下爲 dotnet 建立守護進程(必備知識) - Savorboard - 博客園

https://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html

supervisor安裝部署文檔和管理實例
https://blog.csdn.net/shanliangliuxing/article/details/15499891

Supervisor安裝與配置(Linux/Unix進程管理工具) - 技術改變生活 - CSDN博客

https://blog.csdn.net/xyang81/article/details/51555473

相關文章
相關標籤/搜索