Почему команда “kill -19 PID” в LINUX не работает?

Вопрос или проблема

Я использую LINUX MINT в школе, и у меня было задание создать процесс с помощью while true; do echo "Process"; sleep 5; done, а затем посмотреть, можно ли его завершить с помощью kill -19 <PID>. Я искал PID с помощью ps -ef и нашел его. Я выполнил команду, и она перешла на новую строку, после чего я не мог ничего сделать в командной строке, даже нажав ctrl-C. Есть предложения?

Я пытался проверить, является ли это зомби-процессом, но, похоже, нет. Также проверял с помощью команды “top” для PID и пробовал PPID, но ничего не помогает.

Ответ или решение

Команда kill -19 PID в Linux используется для отправки сигнала SIGSTOP процессу с идентификатором PID. Сигнал SIGSTOP останавливает выполнение процесса, но не убивает его. Процесс, остановленный с помощью SIGSTOP, можно возобновить с помощью сигнала SIGCONT. Возможно, именно поэтому вам показалось, что команда не сработала.

Если вы выполнили команду kill -19 <PID>, и не заметили никаких изменений, это нормально. Процесс будет остановлен, и вы не сможете взаимодействовать с ним до тех пор, пока не отправите сигнал SIGCONT для возобновления его выполнения.

Как проверить состояние процесса:

  1. Используйте команду ps:

    ps -ef | grep <PID>

    Это должно показать вам состояние процесса. Если он находится в состоянии "T", это означает, что процесс остановлен.

  2. Возобновление процесса:
    Чтобы возобновить выполнение остановленного процесса, выполните следующую команду:

    kill -18 <PID>

    Сигнал SIGCONT (18) возобновит выполнение процесса.

Как правильно завершить процесс:

Если ваша цель заключалась в том, чтобы завершить процесс, воспользуйтесь другим сигналом. Например, используйте:

  • SIGTERM (15) для завершения процесса:

    kill -15 <PID>
  • SIGKILL (9) для принудительного завершения процесса:

    kill -9 <PID>

Резюме:

  • Команда kill -19 <PID> просто останавливает процесс и не убивает его.
  • Чтобы возобновить процесс, используй kill -18 <PID>.
  • Для завершения процесса используйте kill -15 <PID> или kill -9 <PID>.

Если возникли дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...