每 2 分钟重启一次服务

每 2 分钟重启一次服务

我已经在以下位置安装了自己的服务:

/etc/systemd/system/MyService.service

采用以下设置:

[Unit]
Description=This is My Awesome service
After=network.target

[Service]
Type=forking
ExecStart=/home/me/myProgram
Restart=always

[Install]
WantedBy=multi-user.target

我也让它在启动时启动:

sudo systemctl enable MyService.service

但出于某种原因,服务经常重启,比如每 2 分钟重启一次

我做错了什么?如何修复它,以便仅在服务真正关闭时才重新启动?

编辑 :

我看到它无缘无故重新启动:

me@myUbuntu:~ $ systemctl status MyService.service
● MyService.service - This is My Awesome service
   Loaded: loaded (/etc/systemd/system/MyService.service; enabled)
   Active: activating (start) since Wed 2016-08-17 08:30:27 UTC; 1min 28s ago
  Control: 2550 (MyService)
   CGroup: /system.slice/MyService.service
          └─2550 /home/me/myProgram
me@myUbuntu:~ $ systemctl status MyService.service
● MyService.service - This is My Awesome service
   Loaded: loaded (/etc/systemd/system/MyService.service; enabled)
   Active: activating (start) since Wed 2016-08-17 08:31:57 UTC; 13ms ago
  Control: 2575 (MyService)
   CGroup: /system.slice/MyService.service
           └─2575 /home/me/myProgram

答案1

如果您的程序存在,参数“Restart=always”将重新启动该程序。请参见此处:https://wiki.archlinux.org/index.php/systemd了解更多详情。同样重要的是:

type=forking:一旦进程分叉并且父进程退出,systemd 就会认为服务已启动。对于经典守护进程,请使用此类型,除非您知道没有必要。您还应该指定 PIDFile=,以便 systemd 可以跟踪主进程。

因此,如果 systemd 需要跟踪进程,则需要创建一个 pid 文件。

相关内容