☰ Оглавление

Как убить процесс в Linux так, чтобы он вернул exit code 0

Иногда kill и kill -9 — это не совсем то, что нужно. Иногда хочется убить процесс но так, чтобы тот, кто его запустил, думал, что процесс завершился успешно.

Это бывает нужно при отладке, при тестировании, или даже при установки капризных пакетов с кривыми install-скриптами.

Если убить процесс командой kill, то он, скорее всего, вернёт не нулевой exit code. Но это можно обойти:

sudo gdb -p $PID -ex 'call exit(0)' -ex quit

Суть очень проста. Мы подключаемся к процессу дебагером и выполняем в его контексте вызов exit(0).

Кстати, при отладке бывает полезно вернуть не 0, а что-то необычное, чтобы потом было легко найти это место в логах. Но это уже редкий случай.