上一篇文章 Asp.NetCore輕鬆學-部署到 Linux 進行託管 介紹瞭如何在 Centos 上部署自託管的 .NET Core 應用程序,接下來的內容就是介紹如何使用第三方任務管理程序來託管 .NET Core 應用程序,這裏以筆者經常使用的 Supervisor 爲例子,從安裝環境開始,一步一步的進入 Linux 的世界,部署程序仍是以上一篇的項目文件 Deploy.Linux 爲基礎。html
Centos 和 ubuntu 下,安裝 supervisor 的步驟有所不一樣,在 Centos 下,須要先添加 Centos 下的擴展包源,ubuntu
sudo yum install epel-release
sudo yum install supervisor
注意是 supervisord 後面多了一個字符:d,由於安裝的服務名稱是:supervisord.service,經過命令查看服務文件可知道centos
cat /usr/lib/systemd/system/supervisord.service
sudo systemctl enable supervisord sudo systemctl start supervisord
sudo supervisorctl
進入 supervisor 控制檯,表示服務安裝成功,並已成功啓動.net
經過查看 cat /etc/supervisord.conf 看到 supervisor 引入配置文件的指定目錄爲rest
[include] files = supervisord.d/*.ini
能夠看到,默認的託管服務配置文件目錄在 supervisord.d/ 下面,這個目錄的完整地址是 /etc/supervisord.d/日誌
關於 supervisor 配置文件的含義,這裏不作過多的解釋,可移步官網查看幫助文檔:http://www.supervisord.org/configuration.html,咱們在這裏只作一個最簡單的配置文件,恰好夠啓動 .NET Core 應用程序便可code
[program:demo] command=/usr/bin/dotnet Deploy.Linux.dll ; 輸入執行命令,這裏表示 dotnet Deploy.Linux.dll directory=/data/sites/demo/publish ; 應用程序根目錄 autostart=true ; 是否自動啓動,當 supervisor 加載該配置文件的時候當即啓動它 autorestart=true ; 是否自動重啓,當執行 dotnet Deploy.Linux.dll 啓動失敗時,會重複的自動重啓 logfile_maxbytes=50MB ; 該配置文件輸出單個日誌文件的大小 logfile_backups=10 ; 日誌備份個數 loglevel=info ; 記錄日誌級別 stderr_logfile=/data/logs/demo/demo.err.log ; 指定標準錯誤輸出日誌文件 stdout_logfile=/data/logs/demo/demo.out.log ; 指定標準輸出日誌文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 可配置環境變量,該環境變量將經過執行 dotnet Deploy.Linux.dll 命令的時候傳入到 .NET Core 應用程序中 user=root ;啓動服務的用戶 stopsignal=INT redirect_stderr=true
sudo mkdir -p /data/logs/demo
sudo systemctl restart supervisord sudo supervisorctl
輸入站點地址:http://139.219.9.102/ 查看服務已正常啓動htm
查看日誌輸出,定位到目錄 /data/logs/demo 查看日誌文件內容正常blog
本文從零開始介紹如何使用 Supervisor,一步一步的從安裝環境到編寫託管服務文件,設置執行文件、執行文件目錄、日誌輸出配置等細節,最終成功將 .NET Core 應用程序託管到了 Supervisor 中,文中都是經過命令形式進行安裝部署,對於接觸 Linux 比較少的同窗來講,可能有些不適應,不過沒關係,這些都是很基礎的命令,咱們呢,就是要多學多用,達到熟悉和強化記憶,而後平滑過渡到 Linux 平臺。文檔