在 systemd 插件中覆盖 ExecStartPre=

在 systemd 插件中覆盖 ExecStartPre=

nginx.service我想在 Debian (Buster) 下添加一个 systemd 插件。包含的ExecStartPre=指令应在服务器启动之前从模板创建 Nginx 配置文件。

我遇到的问题是/lib/systemd/system/nginx.service已经包含一个ExecStartPre=,它检查 Nginx 配置文件的有效性。由于它是ExecStartPre=在我的插件之前执行的,并且此时 Nginx 配置文件尚未完成,因此systemctl start nginx.service失败。

我如何指示 systemd 执行我的ExecStartPre=第一个(或者忘记 from ExecStartPre=/lib/systemd/system/nginx.service

更新 ExecCondition=看起来很有希望,但显然在我的 systemd 版本(241)中不可用。

答案1

按照systemd.service 手册页ExecStart=(相同语法):

如果为此选项分配空字符串,则要启动的命令列表将被重置,此选项的先前分配将不起作用。

因此解决方案是在指定之前添加ExecStartPre=到您的插件中ExecStartPre=whatever

相关内容