Systemd
使用 systemd 啟動單一服務
我最近讀了很多關於 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".
希望有人可以幫助我指導正確的方向。
SystemD 認為該服務已死,因為預期路徑上沒有 PID 文件。這個 pid 文件應該由你的服務創建,systemd 只是檢查,它不會創建這個文件。如果您不想在您的服務中創建此文件,您可以在 section 中使用小 shell 腳本創建它
ExecStartPost=
。