,這個服務已經啟動了,我該如何退出,這個界面還讓它運轉,我一退出 ,這個服務就停掉了 ,。。。。。。。。。。
uj5u.com熱心網友回復:
CTRL+C或者ps查一下行程id,然后killuj5u.com熱心網友回復:
dotnet運行專案的時候,會獨占會話。不管是直接關掉控制臺,還是ctrl + c,都會讓服務停止。正確的做法是用值守模式運行任務,比如借助supervisor。1. 安裝:
yum install supervisor (紅帽系)
apt install supervisor (debian、ubuntu)
2. 在/etc/supervisor/conf.d里為你的dotnet專案添加一個組態檔
(如果是ubuntu,組態檔的檔案名需要以.conf結尾,如果是centos,需要以.ini作為后綴,取決于/etc/supervisor/supervisor.conf的配置,具體可以用 grep -E "^files" /etc/supervisor/supervisord.conf 命令查看,或者直接打開這個檔案進行查看,顯示 files = /etc/supervisor/conf.d/*.conf ,說明這個組態檔還包含了conf.d目錄下的所有*.conf)
組態檔示例
# cat /etc/supervisor/conf.d/dotnet.conf
[program:dotnet]
command=/usr/local/dotnet/dotnet /var/www/ddns/DDNS.dll
directory=/var/www/ddns
autostart=true
autorestart=true
stderr_logfile=/var/www/daemon-ddns.err #服務報錯資訊的輸出日志
stdout_logfile=/var/www/daemon-ddns.log #控制臺輸出的保存位置
log_stderr=true
log_stdout=true
user=root
3.0 用supervisorctl update 這條命令更新supervisor配置(比如有組態檔的新增、修改、洗掉)
3.1 supervisorctl status 查看所有supervisor托管的實體的運行狀態
3.2 supervisorctl start|stop|restart xxxx 開啟|停止|重啟 xxxx實體。
當然,你也可以用其它方法來實作,比如注冊成服務,或者借助nohup、screen命令,最終目的都是把任務維護在后臺,而不需要依賴于當前會話。
uj5u.com熱心網友回復:
更多示例可以參考這篇文章 Supervisor以值守模式(daemon)運行任務三例(java, redis, dotnet)https://www.chenxin.info/2020/06/08/supervisor-sample-java-redis-dotnet/
uj5u.com熱心網友回復:
用docker 部署不就簡單得多嗎, 一條命令 dockers run -d 完事了uj5u.com熱心網友回復:
1. 安裝supervisor;2. 添加任務的組態檔;3. update命令更新配置,一共三步,沒看出來復雜在哪兒。從流程上看,docker倒是繁瑣不少,而且docker門檻要比supervisor更高。
解決一個問題可能有很多方法,如果愿意深入討論,可以坐下來一起聊聊技術之間的對比,但是囿于自己的認知,直接臆斷自己的方法一定是最好的,別人的方法一定比自己的方法差,這就不太合適。
uj5u.com熱心網友回復:
我什么都沒說,都是你自己YY罷 的,我只是給一個選擇樓主罷了,他采用也好 不用也罷,用不著你來教訓我
uj5u.com熱心網友回復:
用docker 部署不就簡單得多嗎, 一條命令 dockers run -d 完事了
1. 安裝supervisor;2. 添加任務的組態檔;3. update命令更新配置,一共三步,沒看出來復雜在哪兒。從流程上看,docker倒是繁瑣不少,而且docker門檻要比supervisor更高。
解決一個問題可能有很多方法,如果愿意深入討論,可以坐下來一起聊聊技術之間的對比,但是囿于自己的認知,直接臆斷自己的方法一定是最好的,別人的方法一定比自己的方法差,這就不太合適。
我什么都沒說,都是你自己YY罷 的,我只是給一個選擇樓主罷了,他采用也好 不用也罷,用不著你來教訓我
那可能是我沒看明白你說的“docker簡單得多”是什么意思。以為你是想進行討論。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/243437.html
標籤:ASP.NET
