Процесс-зомби (уничтожают и дочерний и родительский процесс),

Вопрос: Я хочу удостовериться, что и дочерний и родительский процесс уничтожается и эхо если успешный или нет. Я являюсь новым при использовании сценария удара и наличии проблемы с моим выводом.

#!/bin/bash
for p in $(ps jauxww | grep Z | grep -v PID | awk '{print $3}'); do
for everyone in $(ps auxw | grep $p | grep cron | awk '{print $2}');do
kill -9 $everyone;
echo(Detected zombie process:"$PID". "$usr": . Successfully Killed);
else
echo (Detected zombie process:"$PID".  "$usr": . Could not kill);
done;
done;
4
задан 25 June 2016 в 23:24

1 ответ

Вы уже не можете уничтожить Зомби, его мертвый. Это просто говорит запись в таблице процессов, прежде чем родительский процесс сделает wait(2) для чтения это - статус выхода.

На другой ноте, для уничтожения родительского процесса любого процесса (включая Зомби) можно легко использовать комбинацию команд ps и kill:

ps -p <pid> -o ppid=

даст использованию PPID (идентификатор Родительского процесса) процесса, имеющего PID (идентификатор Процесса) <pid>.

Так, например, для нахождения PPID процесса, имеющего PID 2345:

ps -p 2345 -o ppid=

Можно передать его kill использование замены команды $():

kill "$(ps -p 2345 -o ppid=)"

С другой стороны, для уничтожения процесса с помощью его PPID использовать pkill:

pkill -P <PPID>

Например, уничтожить процесс, имеющий PPID 1234:

pkill -P 1234

Также, если не абсолютно необходимо не используйте SIGKILL (kill -9) поскольку это не позволяет процессу, чтобы сделать любую очистку и могло бы привести к нежелательным эффектам.

3
ответ дан 1 December 2019 в 10:02

Другие вопросы по тегам:

Похожие вопросы: