阻止关机,直至 ExecStop 脚本完成

阻止关机,直至 ExecStop 脚本完成

我有一个在启动时无限运行的脚本,还有另一个脚本可以安全地关闭它。第二个脚本需要连接到远程数据库。它们分别在同一个服务中声明为和ExecStartExecStop我需要第二个脚本阻止关机/重启,直到它完成。目前,第一个脚本运行良好,但第二个脚本提前终止。这是我目前所拥有的:

[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 等待命令完成后再重启/关闭或终止其他进程但它并没有解决我的问题,而且看起来他的命令运行得相对较快。

答案1

我添加了以下内容并且它起作用了:

TimeoutSec=300min

我的最终配置是:

[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

相关内容