asp.net core2.0 部署centos7/linux系統 --守護進程supervisor(二)

原文: asp.net core2.0 部署centos7/linux系統 --守護進程supervisor(二)

續上一篇文章:asp.net core2.0 部署centos7/linux系統 --安裝部署(一),遺留的問題而來,對程序添加守護進程,使網站能夠持續化的運行起來。css

 

一、介紹supervisorhtml

    Supervisor(http://supervisord.org/)是用Python開發的一個client/server服務,是Linux/Unix系統下的一個進程管理工具,不支持Windows系統。它能夠很方便的監聽、啓動、中止、重啓一個或多個進程。用Supervisor管理的進程,當一個進程意外被殺死,supervisort監聽到進程死後,會自動將它從新拉起,很方便的作到進程自動恢復的功能,再也不須要本身寫shell腳原本控制。由於Supervisor是Python開發的,安裝前先檢查一下系統否安裝了Python2.4以上版本。下面以CentOS7,Python2.7版本環境下,介紹Supervisor的安裝與配置步聚:python

 

一、安裝Python包管理工具(easy_install),安裝supervisorlinux

    命令:yum install python-setuptoolsweb

              easy_install supervisorshell

    

    說明:supervisor安裝完成後會生成三個執行程序:supervisortd、supervisorctl、echo_supervisord_conf,分別是supervisor的守護進程服務(用於接收進程管理命令)、客戶端(用於和守護進程通訊,發送管理進程的指令)、生成初始配置文件程序centos

 

二、配置supervisorapi

    新建配置目錄命令:mkdir /etc/supervisor安全

     生成supervisor的初始化配置文件 :echo_supervisord_conf > /etc/supervisor/supervisord.confbash

    修改配置文件:vi supervisord.conf,如圖:

   

    

    取消註釋並修改文件並保存

 

三、配置管理進程

    說明:進程管理配置參數,不建議全都寫在supervisord.conf文件中,應該每一個進程寫一個配置文件放在include指定的目錄下包含進supervisord.conf文件中

    a.建立 /etc/supervisor/conf.d目錄, 用於存放進程管理的配置文件 

    b.修改/etc/supervisor/supervisord.conf中的include參數,將/etc/supervisor/conf.d目錄添加到include中

    

    應用程序1的配置:好比咱們應用程序名稱爲:WebApplication1

    命令 vi WebApplication1.conf

    輸入代碼:

    [program:WebApplication1]

    command=dotnet WebApplication1.dll

    directory=/root/aspnetcoreapi

    autorestart=true

    stderr_logfile=/var/log/WebApplication1.err.log

    stdout_logfile=/var/log/WebApplication1.out.log

    environment=ASPNETCORE_ENVIRONMENT=Production

    user=root

    stopsignal=INT

 

    保存並退出!!!

 

四、啓動Supervisor服務

    命令:supervisord -c /etc/supervisor/supervisord.conf

    查看狀態:supervisorctl status

    

    

    檢查到有一個應用程序在運行中,說明正常

 

五、進程的控制

     說明:supervisord啓動成功後,能夠經過supervisorctl客戶端控制進程,啓動、中止、重啓。運行supervisorctl命令,不加參數,會進入supervisor客戶端的交互終端,並會列出當前所管理的全部進程。

    

    上圖中的WebApplication1就是咱們在配置文件中[program:WebApplication1]指定的名字。

 

六、bash終端控制

    啓動:supervisord -c /etc/supervisor/supervisord.conf

    supervisorctl status

    supervisorctl stop WebApplication1

    supervisorctl start WebApplication1

    supervisorctl restartWebApplication1

    supervisorctl reload

    supervisorctl update

 

七、Web管理界面

    說明:出於安全考慮,默認配置是沒有開啓web管理界面,須要修改supervisord.conf配置文件打開http訪權限,將下面的配置修改:

    

    此配置說明個人管理界面是開啓的哦,9001端口,咱們來瀏覽一下地址http://192.168.0.171:9001/

    

     

 

八、開機啓動Supervisor服務

  • 首先進入/lib/systemd/system目錄,並建立supervisor.service文件,輸入代碼以下:

 

        [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

 

保存並退出!!!

 

  • 修改文件權限

            命令:chmod 766 supervisor.service

 

  • 設置開機啓動

            systemctl enable supervisor.service

            systemctl daemon-reload

     

以上Supervisor開機服務啓動已經好了!!!

 

交流qq羣:18362376

相關文章
相關標籤/搜索