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)