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


簡介

supervisor可以保證程序崩潰后,可以重新把程序啟動起來等相關功能。

安裝

yum install -y supervisor

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

查看supervisor是否安裝成功

supervisord --version

啟動

supervisord -c /etc/supervisord.conf

查看supervisor是否啟動成功

ps -ef|grep supervisord

設置supervisor 開機啟動

systemctl enable supervisord

檢查是否是開機啟動

systemctl is-enabled supervisord

啟動服務

systemctl start supervisord

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

 解決方案:

執行命令 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 ;配置文件夾

修改完之后重啟:

supervisorctl reload

然后通過http://ip:9001/訪問web界面,賬戶名密碼就是你配置的,效果如下:

 

創建配置文件

創建一個.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,效果是一樣的:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM