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

字符串

匹配所需进程的正则表达式模式。

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

复杂类型

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

返回: 始终

名称

字符串

匹配进程的名称。

返回: 始终

示例: "svchost"

owner

字符串

匹配进程的所有者。

返回:PowerShell 支持时

示例: "NT AUTHORITY\\SYSTEM"

pid

整数

匹配进程的 PID。

返回: 始终

示例: 7908

作者

  • Charles Crossan (@crossan007)