Ответ 1
Нет. Вы можете написать цикл с kill -0 $PID
. Если этот вызов завершился с ошибкой ($? -ne 0
), процесс завершился.
по теме:
Когда я запускаю свой tcp-сервер из моего bash script, мне нужно убить предыдущий экземпляр (который все еще может прослушивать тот же самый порт) прямо перед началом текущего экземпляра.
Я мог бы использовать что-то вроде pkill <previous_pid>
. Если я правильно понимаю, это просто отправляет SIGTERM
в целевой pid. Когда pkill
возвращается, целевой процесс все еще может быть в живых. Есть ли способ позволить pkill
подождать, пока он не выйдет?
Нет. Вы можете написать цикл с kill -0 $PID
. Если этот вызов завершился с ошибкой ($? -ne 0
), процесс завершился.
по теме:
Используйте wait
(bash builtin), чтобы дождаться завершения процесса:
pkill <previous_pid>
wait <previous_pid>