aboutsummaryrefslogtreecommitdiffstats
path: root/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml
blob: 9ab98a8e578c582480ea3abf0ca36d4f145d5e89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
---
# file: tasks/kill_process.yaml

- name: Kill Process - {{ process }}
  block:
    - name: Get PID Of {{ process }}
      ansible.builtin.shell: "ps -ef | grep -v grep | grep -w {{ process }} | awk '{print $2}'"
      when:
        - process is defined and process != ""
      register: running_processes
      tags:
        - kill-process

    - name: Safe Kill {{ process }}
      ansible.builtin.shell: "kill {{ item }}"
      with_items: "{{ running_processes.stdout_lines }}"
      ignore_errors: true
      tags:
        - kill-process

    - wait_for:
        path: "/proc/{{ item }}/status"
        state: "absent"
      with_items: "{{ running_processes.stdout_lines }}"
      ignore_errors: true
      register: killed_processes
      tags:
        - kill-process

    - name: Kill Process - Force Kill {{ process }}
      ansible.builtin.shell: "kill -9 {{ item }}"
      with_items: "{{ killed_processes.results | select('failed') | map(attribute='item') | list }}"
      tags:
        - kill-process

  rescue:
    - fail:
        msg: "Kill process {{ process }} failed!"