[英]Application does not exit when an error happening on systemd
因此,我使用.net-core
開發了一個應用daemon
並使用systemd
在linux機器上將該軟件作為daemon
運行。 現在的問題是,當應用程序中發生錯誤時,它會輸入一個“ limbo”,實際上該應用程序的每個活動都是使用Console.WriteLine
記錄的,我可以看到此日志在Linux機器上鍵入該命令: journalctl -fu app.service
。
發生錯誤時,日志不會寫入任何內容,但是同時應用程序仍在運行,這確實很奇怪,因為我使用以下配置設置了服務:
[Unit]
Description = Daemon service
[Service]
ExecStart = /usr/bin/dotnet /home/my username/Desktop/publish/SimpleApp.dll
WorkingDirectory= /home/foo/Desktop/publish
Restart = always
RestartSec = 3
[Install]
WantedBy = multi-user.target
如您所見, Restart = always
出現錯誤時Restart = always
應重新啟動應用程序。 引發異常時,方法Error()
將錯誤寫入文件中,然后通過以下方式終止軟件:
public void Error(Exception ex)
{
File.WriteAllText("error.txt", ex.ToString());
Environment.Exit(1);
}
必須在Linux
環境下的Environment.Exit
上出現問題,否則我在調用Environment.Exit
時發生了錯誤。 還有其他方法可以關閉像這樣作為系統服務運行的應用程序?
謝謝
請嘗試以下操作:
public void Error(Exception ex)
{
File.WriteAllText("error.txt", ex.ToString());
throw new Exception ("This is a test to see if restart is working");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.