我正在尝试创建一个使用 ExecStart
运行多个脚本的服务其中一些可能会失败。我需要忽略这些失败的脚本并为服务返回成功。
以前我用过 upstart
这就是我实现它的方式。
start on runlevel [23]
stop on shutdown
script
set +e # Disable exit on non 0
stop sys_process_script
start sys_init_script
start sys_process_script
set -e # Enable exit on non 0
end script
但我不知道如何忽略失败的脚本。到目前为止,这是我的实现。
[Unit]
Description=System starter
[Service]
Type=forking
ExecStart=/bin/systemctl stop sys_process_script
ExecStart=/bin/systemctl start sys_init_script
ExecStart=/bin/systemctl start sys_process_script
如果在
systemctl
中失败,是否有任何方法可以忽略脚本或在 .service - onFailure
?
最佳答案
内联包装的简单方法
ExecStart=/bin/sh -c"command_which_will_fail; exit 0;"
关于ubuntu-16.04 - 如何忽略 Systemd 中 'ExecStart' 的失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56928677/