我正在尝试将应用程序作为系统服务运行。服务文件示例如下。
[Unit]
Description = Custom APP
Wants = network.target
After = syslog.target network-online.target graphical.target
StartLimitIntervalSec = 0
[Service]
User =
Type = simple
Environment =
WorkingDirectory =
ExecStart =
Restart = always
RestartSec = 60
KillMode = control-group
[Install]
WantedBy = graphical.target
我通过 ssh 运行该服务。操作系统是ubuntu 18.04。如果外部显示器连接到设备,并且在所有情况下通过 GUI 登录一次机器后,我在设备上进行 ssh,则服务和流程将按预期工作。
但是当我重新启动设备并删除外部显示器并仅通过 ssh 登录(即没有基于 GUI 的登录)时,就会发生这些事情
- 如果我从命令行将应用程序作为一个简单的进程运行,它会按预期工作。
- 如果我尝试将应用程序作为 systemd 服务运行,它会在引发异常后退出。
- 如果我只通过 GUI 登录一次并且不重新启动设备,那么即使我移除外部显示器,该服务也可以正常工作。
我不知道为什么会发生这种情况。
编辑
- 引发的异常是 - 在没有活动异常的情况下调用终止
- 它是一个基于 C++ gstreamer 的流应用程序。