我有一个ansible剧本来杀死正在运行的进程,并且大部分时间工作得很好!然而,我们不时地发现无法被杀死的进程,因此,"wait_for“到达超时,抛出一个错误并停止该进程。
目前的解决办法是手动进入盒子,使用“杀死-9”,然后再次运行“ansible剧本”,所以我想知道是否有任何方法可以从ansible本身处理这个场景?我的意思是,我不想从一开始就使用杀死-9,但我可能有一种方法来处理超时?,甚至使用杀死-9,只有在300秒内进程还没有被杀死的情况下?但是怎样才是最好的方法呢?
以下是我目前的任务:
- 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 }}"
谢谢!
发布于 2020-04-07 05:42:34
使用(1)而不是grep
+kill
。
https://stackoverflow.com/questions/46515704
复制相似问题