【发布时间】:2020-11-16 13:13:40
【问题描述】:
我有一个分配了OnCalendar 计时器的systemd 服务单元。该服务调用运行代码的 JVM,该代码只能在特定的时间表上启动。
这个 systemd 单元(和其他几个单元)由 ansible playbook 管理,它使用 openstack/ansible-role-systemd_service 角色。每次我对其单元文件进行一些更改时,它都会重新启动 systemd 服务。
此外,还有一个处理程序,每次 Gitlab CI 管道运行此 ansible playbook 并将新的 .jar 工件上传到服务器时,它都会重新启动所有服务。
是否有任何 systemd 内置机制来限制重新启动服务并为其分配计时器? 不过,我必须能够在需要时手动停止/启动这些服务。
似乎我可以分叉该 ansible 角色并添加一些检查,但我想知道是否有一些本机和更直接的方法来实现这一点。
【问题讨论】:
-
我不确定这是否是您想要的,但您可以将
RefuseManualStart=yesRefuseManualStop=yes放入计时器和服务单元中。 -
感谢您的建议,但我希望能够在需要时手动启动/停止服务。
标签: java ansible continuous-integration systemd