Страница 1 из 1

Принудительно завершить процесс с кодом выхода 0.

Добавлено: 01 фев 2018, 13:34
ZEN
Сложилась ситуация, когда в Jenkins запущено несколько параллельных заданий и если убить один процесс, остальные завершатся с статусом 'failed'. Так, как скрипты тяжелые и бегут по несколько дней, стала задача прибить один проблемный скрипт без остановки других. Известно, что Jenkins ориентируется на код выхода приложения. Если код не нулевой, значит приложение завершилось с ошибкой. Решение нашлось на serverfault. Суть метода заключается в том, что бы подключиться к процессу с помощью gdb и вызвать системную функцию exit:

Код: Выделить всё

gdb -p <process id>
....
.... Gdb output clipped
(gdb) call exit(0)

Program exited normally.
А так же, предложен вариант в виде однострочника:

Код: Выделить всё

gdb --batch --eval-command 'call exit(0)' --pid <process id>