【发布时间】:2017-10-01 18:48:02
【问题描述】:
我有一个 ansible playbook 可以杀死正在运行的进程并且大部分时间都很好用!但是,有时我们会发现无法杀死的进程,所以“wait_for”会超时,抛出错误它停止了这个过程。
当前的解决方法是手动进入该框,使用“kill -9”并再次运行 ansible playbook,所以我想知道是否有任何方法可以从 ansible 本身处理这种情况?我的意思是,我没有不想从一开始就使用 kill -9 但我可能是一种处理超时的方法?甚至只有在进程没有在 300 秒内被杀死的情况下才使用 kill -9?但是最好的方法是什么?
这些是我目前的任务:
- name: Get running processes
shell: "ps -ef | grep -v grep | grep -w {{ PROCESS }} | awk '{print $2}'"
register: running_processes
- name: Kill running processes
shell: "kill {{ item }}"
with_items: "{{ running_processes.stdout_lines }}"
- name: Waiting until all running processes are killed
wait_for:
path: "/proc/{{ item }}/status"
state: absent
with_items: "{{ running_processes.stdout_lines }}"
谢谢!
【问题讨论】:
-
仅在需要外壳功能时才使用外壳。命令:“杀死 {{ item }}”
标签: process ansible kill ansible-2.x kill-process