我正在写一个类似于以下的ansible任务,
- name: Start daemon
shell: nohup myexeprogram arg1 arg2 &
(参考:https://stackoverflow.com/a/29818158/198660)
上述任务是幂等的吗?即将重复运行它最终会在系统上创建多个myexeprogram
实例,或者只会创建一个?
如果是前者(即为每个任务运行创建一个新实例),是否可以使用此任务编写一个游戏来进行幂等?也许是为了进行某种搜索&在开始新实例之前,为任何现有实例执行kill命令?将赞赏示例(安全任务)。
背景:我正在尝试在centos7系统上使用ansible设置prometheus服务器。
答案 0 :(得分:1)
这项任务不会是幂等的。它会在每次运行时产生一个新实例。
您可以通过使用其他任务来检查现有的正在运行的流程并使用'何时使用'以此任务为条件,以避免在进程已在运行时运行。
那说守护程序并使用'服务'模块是比使用命令和nohup更好的模式。