问题描述
我想通过AIX上的init.d文件重新启动服务。 Ansible service
和sysvinit
无效。如何使用Ansible控制这些服务。
我知道我可以运行shell命令,但也许有内置的解决方案。
这就是我要在shell上执行的操作
/etc/rc.d/init.d/nrpe restart
解决方法
来自docs of the service builtin:
控制远程主机上的服务。受支持的init系统包括BSD init,OpenRC,SysV,Solaris SMF,systemd和upstart。
基本上,service
模块尝试自动检测使用哪个初始化系统,并使用该初始化系统执行操作。但是,如果您的init系统不了解该服务(您正在直接运行init脚本,对吗?),该服务(init系统)将无法重新启动它。
因此,如果初始化系统不了解您的服务,则不能使用service
模块或任何其他尝试与初始化系统进行交互的模块。
您应该将init脚本放入用于系统识别的正确目录中(然后您也可以运行service nrpe restart
),然后使用service
模块。
如果由于某种原因无法执行此操作,则需要使用command
或shell
模块来重新启动服务。