Saltar al contenido

¿Cómo matar un proceso en ejecución usando ansible?

Marisol, parte de nuestro equipo de trabajo, nos hizo el favor de redactar este escrito ya que controla perfectamente el tema.

Puede ignorar los errores en wait_for y registre el resultado para forzar la eliminación de elementos fallidos:

- 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 "

- wait_for:
    path: "/proc/ item /status"
    state: absent
  with_items: " running_processes.stdout_lines "
  ignore_errors: yes
  register: killed_processes

- name: Force kill stuck processes
  shell: "kill -9  item "
  with_items: " list "

Utilizar pkill(1) en lugar de grep+kill.

los killall El comando tiene una opción de espera que podría ser útil.

Instalar pmisc:

tasks:
  - apt: pkg=psmisc state=present

Luego usa killall así:

tasks:
  - shell: "killall screen --wait"
    ignore_errors: true # In case there is no process

-w, --wait: Espere a que todos los procesos eliminados mueran. killall comprueba una vez por segundo si alguno de los procesos eliminados aún existe y solo regresa si no queda ninguno.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *