community.windows.win_wait_for_process 模块 – 等待进程存在或不存在后再继续。

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.windows

要在 playbook 中使用它,请指定:community.windows.win_wait_for_process

概要

  • 等待进程启动或停止。

  • 当 Windows 服务行为不佳并且未在其清单中枚举外部依赖项时,这非常有用。

参数

参数

注释

owner

字符串

进程的所有者。

需要 PowerShell 4.0 或更新版本。

pid

整数

进程的 PID。

默认值: 0

post_wait_delay

整数

检查进程后等待的秒数。

默认值: 0

pre_wait_delay

整数

检查进程前等待的秒数。

默认值: 0

process_min_count

整数

满足 present 条件所需的匹配提供的模式的最小进程数。

仅适用于 present

默认值: 1

process_name_exact

列表 / 元素=字符串

要等待的进程的名称。进程的名称不应包含文件扩展名后缀。

process_name_pattern

字符串

匹配所需进程的 RegEx 模式。

sleep

整数

检查之间休眠的秒数。

仅适用于等待进程启动的情况。等待进程启动没有原生的非轮询机制。等待停止使用原生 PowerShell,不需要轮询。

默认值: 1

state

字符串

当检查正在运行的进程时,present 将阻止执行,直到进程存在或达到超时时间。 absent 将阻止执行,直到进程不再存在或达到超时时间。

当等待 present 时,仅当进程在初始检查时不存在但在后续检查中变为存在时,模块才会返回已更改。

如果在等待 absent 时,启动了与提供的模式匹配的新进程,则这些新进程将不包含在操作中。

选择

  • "absent"

  • "present" ←(默认)

timeout

整数

在因错误而超时之前,等待进程启动或停止的最大秒数。

默认值: 300

另请参阅

另请参阅

ansible.builtin.wait_for

等待条件满足后再继续。

ansible.windows.win_wait_for

等待条件满足后再继续。

示例

- name: Wait 300 seconds for all Oracle VirtualBox processes to stop. (VBoxHeadless, VirtualBox, VBoxSVC)
  community.windows.win_wait_for_process:
    process_name_pattern: 'v(irtual)?box(headless|svc)?'
    state: absent
    timeout: 500

- name: Wait 300 seconds for 3 instances of cmd to start, waiting 5 seconds between each check
  community.windows.win_wait_for_process:
    process_name_exact: cmd
    state: present
    timeout: 500
    sleep: 5
    process_min_count: 3

返回值

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

描述

elapsed

浮点数

轮询开始到模块结束之间经过的秒数。

已返回: 总是

示例: 3.14159265

matched_processes

复杂

匹配的进程列表(已停止或已启动)。

已返回: 总是

name

字符串

匹配的进程的名称。

已返回: 总是

示例: "svchost"

owner

字符串

匹配进程的所有者。

返回: 当 PowerShell 支持时返回

示例: "NT AUTHORITY\\SYSTEM"

pid

整数

匹配进程的 PID。

已返回: 总是

示例: 7908

作者

  • Charles Crossan (@crossan007)