我正在尝试向 systemd 服务添加功能([电子邮件受保护])使用覆盖文件。我遇到的麻烦是我需要新功能始终在旧功能“内部”运行,即在执行开始=和之前执行停止=原始服务的(因为它在旧功能创建的目录上安装文件系统,然后在删除该目录之前卸载它)。
前者很简单,因为我可以使用执行开始后=以确保正确的订购。但没有一个执行停止前=,如果我只是使用执行停止=,无法保证顺序,并且在实践中结果是错误的。
有没有解决方法?
答案1
有没有解决方法?
如果您需要明确排序,您可以代替ExecStop
覆盖中的现有功能。例如,如果原始单元文件具有:
ExecStop=/path/to/script1
在您的直接覆盖中,您可以:
ExecStop=
ExecStop=/path/to/my_additional_script
ExecStop=/path/to/script1
清空ExecStop=
会清除所有现有条目。
或者,不使用ExecStop
,也可以使用适当的依赖项(///etc)将逻辑实现为单独的Requires
单元。Before
After