.Net Core 項目發佈到Linux - CentOS 7(二)用Supervisor守護netcore進程

簡介

supervisor能夠保證程序崩潰後,能夠從新把程序啓動起來等相關功能。html

安裝

yum install -y supervisor

安裝好後在/etc/會生成一個supervisord.conf文件及一個supervisord.d文件目錄nginx

查看supervisor是否安裝成功

supervisord --version

啓動

supervisord -c /etc/supervisord.conf

查看supervisor是否啓動成功

ps -ef|grep supervisord

設置supervisor 開機啓動

systemctl enable supervisord

檢查是不是開機啓動web

systemctl is-enabled supervisord

啓動服務

systemctl start supervisord

啓動時可能回報錯:Another program is already listening on a port that one of our HTTP servers is config...rvisord.shell

 解決方案:api

執行命令 find / -name supervisor.sock  而後 unlink /路徑/supervisor.sock 最後再執行啓動命令 systemctl start supervisord 瀏覽器

查看狀態

systemctl status supervisord.service

配置supervisor ,web管理頁面

修改配置信息,supervisor 默認配置文件,放在 /etc/supervisord.conf 路徑中:服務器

[inet_http_server]         ; HTTP 服務器,提供 web 管理界面
port=*:9001                ; Web 管理後臺運行的 IP 和端口
username=user              ; 登陸管理後臺的用戶名
password=1234               ; 登陸管理後臺的密碼

 [include]                     
 files = supervisord.d/*.ini ;配置文件夾測試

修改完以後重啓:spa

supervisorctl reload

而後經過http://ip:9001/訪問web界面,帳戶名密碼就是你配置的,效果以下:3d

 

建立配置文件

建立一個.ini文件,放在目錄supervisord.d下

[program:demo] ;程序名稱
command=dotnet demo.dll ; 運行命令
directory=/web/publish;目錄
environment=ASPNETCORE_ENVIRONMENT=Production;環境變量
user=root;用戶
stopsignal=INT
autostart=true;若是是true的話,子進程將在supervisord啓動後被自動啓動
autorestart=true;進程死掉後自動重啓的狀況
stderr_logfile=/var/log/demo/demo.err.log;錯誤日誌文件
stdout_logfile=/var/log/demo/demo.out.log;輸出日誌文件

 重啓

systemctl restart supervisord

查看是否生效

supervisorctl status

而後把Xshell關了,瀏覽器中輸入:http://ip:8080/api/values,也能看到如下頁面:

supervisorctl 經常使用命令

查看任務狀態:supervisorctl status

啓動任務:supervisorctl start <name>

中止任務:supervisorctl stop <name>

重啓任務:supervisorctl restart <name>

清除日誌文件:supervisorctl  clear <name>

清除多個日誌文件:supervisorctl  clear <name> <name> 

清除全部日誌文件:supervisorctl  clear all 

移除任務:supervisorctl  remove <name>

Nginx代理配置

安裝nginx:Linux - CentOS 7 經過Yum源安裝 Nginx 

修改nginx.conf

添加一個服務

  server {
     listen       80;
     server_name  47.106.98.252;

    location / {
          root   html;
          index  index.html index.htm;
          proxy_pass http://localhost:8080;
    }
 }

檢查配置文件是否成功

nginx -t

 成功以後重啓Nginx服務

systemctl restart nginx.service

測試

瀏覽器輸入http://ip:/api/values,效果是同樣的:

相關文章
相關標籤/搜索