【问题标题】:Restart service with custom path to init.d file使用 init.d 文件的自定义路径重新启动服务
【发布时间】:2021-01-27 19:34:04
【问题描述】:

我想通过 AIX 上的 init.d 文件重新启动服务。 Ansibles servicesysvinit 不起作用。如何使用 Ansible 控制这些服务。

我知道我可以运行一个 shell 命令,但也许有一个内置的解决方案。

这就是我在 shell 上要做的事情:

/etc/rc.d/init.d/nrpe restart

【问题讨论】:

  • 嗯,AIX 是一个奇特的平台。如果不进行修改,Linux 特定工具不太可能在其上运行。
  • NRPE 运行良好,Ansible 也很好。 AFAIK service 模块还支持 AIX 上的 startsrc/stopsrc。但我认为有一种方法可以将service 模块指向这个初始化脚本。好的,我现在正在使用该命令。

标签: ansible aix


【解决方案1】:

来自docs of the service builtin

控制远程主机上的服务。支持的init系统包括BSD init、OpenRC、SysV、Solaris SMF、systemd、upstart。

基本上service 模块会尝试自动检测使用了哪个初始化系统并使用该初始化系统执行操作。但是,如果您的 init 系统不知道该服务(您是直接运行 init 脚本,对吗?)它(init 系统)将无法重新启动它。

因此,如果 init 系统不知道您的服务,则您不能使用 service 模块或任何其他尝试与您的 init 系统交互的模块。

您应该将您的初始化脚本放入正确的目录中,以便您的初始化系统识别它(然后您也可以运行service nrpe restart),然后使用service 模块。
如果由于某种原因不能这样做,则需要使用commandshell 模块重新启动服务。

【讨论】:

  • 它是 AIX。没有service 命令。主服务系统通过startsrc/stopsrc控制。我正在使用 AIX Toolbox for Linux Applications 中的一些工具,它们像这样安装。
  • 抱歉,我不熟悉 AIX。它看起来像来自 pre-systemd 时代的旧初始化脚本:D 看看这个,也许你会发现一些有用的东西:github.com/IBM/ansible-power-aix 但实际上,我会选择 shellcommand
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
  • 2015-09-26
  • 2013-09-11
  • 2012-06-10
  • 1970-01-01
  • 2014-09-08
相关资源
最近更新 更多