ASP.NET Core 發布 centos7 配置守護進程
阿新 • • 發佈:2018-03-24
進入 最新 執行命令 signal inf rep putty http err
ASP.NET Core應用程序發布linux在putty中運行是正常的。可一但putty關閉網站也就關閉了,所以要配置守護進程, 用的是Supervisor,本文主要記錄配置的過程和過程遇到的問題
安裝 Supervisor 及配置 Supervisor
1.yum install python-setuptools 2.easy_install supervisor #安裝Supervisor 3.mkdir /etc/supervisor 4.echo_supervisord_conf > /etc/supervisor/supervisord.conf #配置 Supervisor
4.配置
cd /etc/supervisor
ls
supervisord.conf文件
5. 文件的最後
;[include] ;files = relative/directory/*.ini
改成(【註意】去掉;且不能有空格)
[include] files = conf.d/*.conf
6.進入目錄 /etc/supervisor/
新建 conf.d
文件夾,conf.d
文件夾下新建 netcoreDemo.conf
文件
內容(【註意】看 第二行 第三行的 註釋,根據實際名字填入)
mkdir /etc/supervisor/conf.d --創建conf.d文件夾 ls cd conf.d vi netcore.conf--創建netcore文件並且向裏面添加內容
[program:netcore] command=dotnet mhqtalks.dll ; (註意)運行程序的命令 directory= /home/netCore/ ; (註意 註意)對應的你的項目的存放目錄,這個地方好多初學者搞錯!!! autorestart=true ; 程序意外退出是否自動重啟 stderr_logfile=/var/log/WebApplication1.err.log ; 錯誤日誌文件 stdout_logfile=/var/log/WebApplication1.out.log ; 輸出日誌文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變量 user=root ; 進程執行的用戶身份 stopsignal=INT
運行supervisord並查看
7 supervisord -c /etc/supervisor/supervisord.conf
8 ps -ef | grep netcore # 這行命令是查看有關netcore的所有進程 ,【註意】netcore是上面 program:netcore 的命名 ,如果你看到如下圖 ,說明運行成功,如果沒有成功可以看上面配置的那個錯誤日誌文件
9 supervisorctl reload #最後重新載入配置
配置Supervisor開機啟動
打開目錄 /usr/lib/systemd/system/
新建文件 supervisord.service
內容:
# dservice for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
執行命令:
systemctl enable supervisord systemctl is-enabled supervisord #來驗證是否為開機啟動
到此,完工。現在重新電腦什麽都不用管,直接可以訪問部署好的網站。
下面整理一些關於 Supervisor 的命令 ,參考鏈接https://segmentfault.com
命令 | 說明 |
---|---|
supervisord | 初始啟動Supervisord,啟動、管理配置中設置的進程 |
supervisorctl stop myproject | 停止某一個進程(programxxx),programxxx為[program:chatdemon]裏配置的值,這個示例就是chatdemon |
supervisorctl start myproject | 啟動某個進程 |
supervisorctl restart myproject | 重啟某個進程 |
supervisorctl stop groupworker | 重啟所有屬於名為groupworker這個分組的進程(start,restart同理) |
supervisorctl stop all | 停止全部進程,註:start、restart、stop都不會載入最新的配置文件 |
supervisorctl reload | 載入最新的配置文件,停止原有進程並按新的配置啟動、管理所有進程 |
supervisorctl update | 根據最新的配置文件,啟動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啟。註意:顯示用stop停止掉的進程,用reload或者update都不會自動重啟 |
溫馨提示:如果要結束某個守護進程,我們可以 ps -ef | grep supervisord 查出所有守護進程相關的進程
然後再用 kill -9 pid 結束進程
ASP.NET Core 發布 centos7 配置守護進程