簡體   English   中英

在systemd上發生錯誤時,應用程序不退出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM