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