supervisor能夠保證程序崩潰後,能夠從新把程序啓動起來等相關功能。html
yum install -y supervisor
安裝好後在/etc/會生成一個supervisord.conf文件及一個supervisord.d文件目錄nginx
supervisord --version
supervisord -c /etc/supervisord.conf
ps -ef|grep supervisord
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 默認配置文件,放在 /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 status
啓動任務:supervisorctl start <name>
中止任務:supervisorctl stop <name>
重啓任務:supervisorctl restart <name>
清除日誌文件:supervisorctl clear <name>
清除多個日誌文件:supervisorctl clear <name> <name>
清除全部日誌文件:supervisorctl clear all
移除任務:supervisorctl remove <name>
安裝nginx:Linux - CentOS 7 經過Yum源安裝 Nginx
添加一個服務
server { listen 80; server_name 47.106.98.252; location / { root html; index index.html index.htm; proxy_pass http://localhost:8080; } }
nginx -t
systemctl restart nginx.service
瀏覽器輸入http://ip:/api/values,效果是同樣的: