Bash nie wydaje się tworzyć zombie. Wygląda na to, że procesy zostają natychmiast wykorzystane, gdy zostaną zabite.
Czy mogę sprawić, by bash robił zombie?
Dlaczego pytam:
Chciałbym móc bezpiecznie zabić proces potomny lub bezpiecznie kill -9
, jeśli nie umrze w pewnym okresie czasu, ale nie chcę przypadkowo zablokować procesu, który nie jest moim procesem potomnym. Procesy zombie zwykle sprawiają, że jest to bardzo łatwe i bezpieczne dla rasy.
unshare
celu utworzenia przestrzeni nazw PID, aby procesy wewnątrz tego drzewa procesów były izolowane i niedostępne.kill -KILL %n
gdzien
jest numer zadania itd.), Zamiast próbować go obejść.timeout
polecenie?Odpowiedzi:
Aby wykonać proces zombie:
To zastąpi powłokę, która działa
sleep 1
z/bin/sleep 10
tym, że nie będzie wiedział, żesleep 1
proces się zakończył, więc tworzenie zombie na 10 sekund.Nie jestem pewien, czego oczekujesz od zabicia procesu zombie. Proces zombie był już martwy, nie można go zabić.
W rzeczywistości możesz sprawić, że procesy zombie znikną, ale zabijając ich rodzica, a nie same procesy zombie.
źródło
Niezbyt interesująca odpowiedź:
źródło
$BASHPID
to$$
myślę.$BASHPID
to nie to samo$$
. Spróbuj następującego kodu:echo $$ $BASHPID ;echo $(echo $$ $BASHPID)
. Możesz znaleźć więcej informacji wman bash
.