Ich habe ein lustiges Playbook, um laufende Prozesse zu beenden und funktioniert die meiste Zeit !, aber von Zeit zu Zeit finden wir Prozesse, die nicht einfach so beendet werden können, "wait_for" bekommt das Timeout, wirft einen Fehler und es stoppt den Prozess.Wie kann man einen laufenden Prozess mit Ansible beenden?
Die aktuelle Problemumgehung besteht darin, manuell in das Feld zu gehen, "kill -9" zu verwenden und das Ansible-Playbook erneut auszuführen, also fragte ich mich, ob es irgendeinen Weg gibt, dieses Szenario von ansible selbst zu behandeln ?, ich meine Willst du Kill -9 nicht von Anfang an verwenden, aber vielleicht kann ich mit dem Timeout umgehen? Kann ich kill -9 nur verwenden, wenn der Prozess nicht innerhalb von 300 Sekunden beendet wurde? Aber was wäre der beste Weg?
Dies sind die Aufgaben, die ich derzeit haben:
- 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 }}"
Dank!
Danke, Eric! –