我有一个在启动时无限运行的脚本,另一个脚本安全地closures它。 第二个脚本需要连接到远程数据库。 它们都分别在ExecStart和ExecStop的相同服务中ExecStart 。 我需要第二个脚本来阻止关机/重启,直到完成。 目前第一个脚本工作正常,但第二个脚本提前终止。 这是我到目前为止:
[Unit] DefaultDependencies=no Wants=network-online.target After=network.target network-online.target Before=reboot.target shutdown.target halt.target [Service] Type=oneshot RemainAfterExit=true User=test ExecStart=/usr/bin/python /home/test/test.py ExecStop=/usr/bin/sh /home/test/test KillMode=none [Install] WantedBy=multi-user.target
我尝试使用以下命令 : systemd等待命令完成之前重新启动/关机或杀死其他进程,但它并没有解决我的问题,似乎他是命令运行相对较快。
我添加了以下,它的工作:
TimeoutSec=300min
我最后的configuration是:
[Unit] DefaultDependencies=no Wants=network-online.target After=network.target network-online.target Before=reboot.target shutdown.target halt.target [Service] Type=simple RemainAfterExit=true User=test ExecStart=/usr/bin/python /home/test/test.py ExecStop=/usr/bin/sh /home/test/test KillMode=none TimeoutSec=300min [Install] WantedBy=multi-user.target
注意 :我故意没有使TimeoutSec=infinity