使用 systemd 启动 mono 服务

使用 systemd 启动 mono 服务

我最近阅读了很多关于 systemd 的文章,但我不知道如何mono-service通过 systemd 运行我的系统。

以下是我当前的 systemd 守护进程配置:

root@LNXOSESTNL:/opt/omnius-statusdaemon# cat /etc/systemd/system/omnius-statusdaemon.service 
[Unit]
Description="Omnius StatusDaemon"
After=network.target

[Service]
Type=simple
User=omnius-statusdaemon
Group=omnius-statusdaemon
ExecStart=/usr/bin/mono-service -d:/opt/omnius-statusdaemon /opt/omnius-statusdaemon/Dynacommerce.StatusQueueService.exe
PIDFile=/tmp/omnius-statusdaemon.pid
StandardOutput=journal+console

[Install]
WantedBy=default.target

当我直接运行上述 exec 脚本时,一切运行正常,我的脚本mono-service正在运行。但是通过 systemd 输出如下:

root@LNXOSESTNL:/opt/omnius-statusdaemon# systemctl status omnius-statusdaemon.service
● omnius-statusdaemon.service - "Omnius StatusDaemon"
   Loaded: loaded (/etc/systemd/system/omnius-statusdaemon.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2018-03-17 11:26:38 CET; 2s ago
  Process: 11099 ExecStart=/usr/bin/mono-service -d:/opt/omnius-statusdaemon /opt/omnius-statusdaemon/Dynacommerce.StatusQueueService.exe (code=exited, status=0/SUCCESS)
 Main PID: 11099 (code=exited, status=0/SUCCESS)

Mar 17 11:26:38 LNXOSESTNL systemd[1]: Started "Omnius StatusDaemon".

希望有人能帮助我指引正确的方向。

答案1

SystemD 认为服务已停止,因为预期路径上没有 PID 文件。此 pid 文件应由您的服务创建,systemd 只是检查,不会创建此文件。如果您不想在服务中创建此文件,也许您可​​以使用本节中的小 shell 脚本来创建它ExecStartPost=

相关内容