community.general.launchd 模块 – 管理 macOS 服务

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

要在 playbook 中使用它,请指定:community.general.launchd

community.general 1.0.0 中的新增功能

概要

  • 管理目标 macOS 主机上的 launchd 服务。

要求

以下要求是在执行此模块的主机上需要的。

  • 由 launchd 管理的系统

  • plistlib python 库

参数

参数

注释

enabled

布尔值

服务是否应在启动时启动。

至少需要 state 和 enabled 之一。

选项

  • false

  • true

force_stop

布尔值

服务是否不应由 launchd 自动重新启动。

服务可能在 launchd 配置中将“KeepAlive”属性设置为 true。如果设置为 true,则停止服务将导致 launchd 再次启动服务。

将此选项设置为 true 以使此模块将“KeepAlive”属性更改为 false

选项

  • false ← (默认)

  • true

name

字符串 / 必需

服务的名称。

plist

字符串

community.general 10.1.0 中新增

服务的 .plist 文件的名称。

默认为 {name}.plist

state

字符串

started/stopped 是幂等操作,除非必要,否则不会运行命令。

Launchd 本身不支持 restartedreloaded。这些将触发停止/启动 (restarted) 或卸载/加载 (reloaded)。

restarted 在启动前卸载和加载服务,以确保使用最新的作业定义 (plist)。

reloaded 卸载和加载服务以确保使用最新的作业定义 (plist)。服务是启动还是停止取决于定义文件的内容。

选项

  • "reloaded"

  • "restarted"

  • "started"

  • "stopped"

  • "unloaded"

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 中运行并返回更改状态预测,而无需修改目标。

diff_mode

支持:不支持

处于 diff 模式时,将返回有关已更改内容(或可能需要在 check_mode 中更改)的详细信息。

备注

注意

  • 用户必须拥有使用此模块管理服务的权限。

示例

- name: Make sure spotify webhelper is started
  community.general.launchd:
    name: com.spotify.webhelper
    state: started

- name: Deploy custom memcached job definition
  template:
    src: org.memcached.plist.j2
    dest: /Library/LaunchDaemons/org.memcached.plist

- name: Run memcached
  community.general.launchd:
    name: org.memcached
    state: started

- name: Stop memcached
  community.general.launchd:
    name: org.memcached
    state: stopped

- name: Stop memcached
  community.general.launchd:
    name: org.memcached
    state: stopped
    force_stop: true

- name: Restart memcached
  community.general.launchd:
    name: org.memcached
    state: restarted

- name: Unload memcached
  community.general.launchd:
    name: org.memcached
    state: unloaded

- name: restart sshd
  community.general.launchd:
    name: com.openssh.sshd
    plist: ssh.plist
    state: restarted

返回值

常用返回值已在 此处 记录,以下是此模块独有的字段

描述

status

字典

关于服务状态的元数据

返回:始终

示例:{"current_pid": "-", "current_state": "stopped", "previous_pid": "82636", "previous_state": "running"}

作者

  • Martin Migasiewicz (@martinm82)