在OSX目标上使用Ansible重启守护程序的正确方法是什么?

我创build了一个简单的Ansibleangular色,目的是在OSX目标上configurationdnsmasq(dnsmasq从homebrew安装)。

我想创build一个处理程序,当configuration文件发生变化时重启守护程序(自版本1.9.3开始,Ansible不会为OSX实现服务模块)。

我有一个任务:

- name: Create dnsmasq config file in /usr/local/etc/ from template template: src=dnsmasq.conf.j2 dest=/usr/local/etc/dnsmasq.conf notify: - restart dnsmasq 

/Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist有一个关键的<key>KeepAlive</key> ,它在不运行时自动启动守护进程,所以下面的处理程序完成它的工作。 我可以一直依靠这个吗?

 - name: restart dnsmasq sudo: yes command: launchctl stop homebrew.mxcl.dnsmasq 

没有任何情况或计时问题会导致守护进程永久停止? 这样的处理程序写入的正确方法是什么?

launchctl(1)

  stop label Stop the specified job by label. If a job is on-demand, launchd may immediately restart the job if launchd finds any criteria that is satisfied. 

所以我认为KeepAlive会导致守护进程恢复,尽pipe子命令在LEGACY SUBCOMMANDS块中被closures了,所以在未来的某个时候可能会被苹果删除? kickstart -k看起来像会执行启动或重新启动,并且不在传统块中。