W man page
napisane jest:
0 All processes in the current process group are signaled
Próbowałem tak:
$ man kill &
[1] 15247
$
[1]+ Stopped man kill
$ kill 0
$ ps
15247 pts/41 00:00:00 man
Jak zrozumiałem, kill 0
zabije wszystkie procesy w bieżącym procesie, który obejmuje pid15247
. Jednak w tym przykładzie nic nie zrobił. Czy ktoś ma pomysły, jak go używać?
Odpowiedzi:
Nie mogłem znaleźć notatki, jak się
kill 0
zachowuje na mojej stronie man kill (debian).Ale mam dwa komentarze:
(1) „Grupa procesów” może nie być tym, czego oczekujesz. Możesz wyświetlić ID grupy procesów (PGID) za pomocą
ps -o "%p %P %r %c %a"
:Tak więc,
man
razem z narzędziem wyświetlającym pager (less
) znajduje się w tej samej grupie procesów, ale różni się od powłoki (w moim przypadku zsh).(2) Prawdopodobnie istnieją dwa różne
kill
polecenia. Jeden wbudowanybash
(patrz bash (1), sekcja „KOMENDY WBUDOWANE POWŁOKI”) i zewnętrzny/bin/kill
. Ci dwaj mogą zachowywać się inaczej! Możesz wyraźnie określić, który chcesz uruchomić, wpisującbuiltin kill
lubcommand kill
zamiast niegokill
. Polecenie zewnętrzne można również uruchomić poprzez podanie ścieżki:/bin/kill
.źródło
PPID
to identyfikator procesu nadrzędnego , który często jest, ale niekoniecznie, identyfikatorem grupy procesów. Prawidłowa kolumna toPGID
, która nie pojawia się w domyślnymps
wyjściu; musisz użyć-o
opcji, aby utworzyć niestandardowy format, który go zawiera.:-(
)Aby zatrzymać wszystkie procesy i wylogować się, wprowadź:
To wysyła sygnał 9, sygnał SIGKILL, do wszystkich procesów mających identyfikator grupy procesów równy identyfikatorowi grupy procesów nadawców. Ponieważ powłoka nie może zignorować sygnału SIGKILL, zatrzymuje to również powłokę logowania i wylogowuje
To jest Podręcznik IBM AIX, ale być może ta koncepcja ma zastosowanie.
Ta funkcja nie istnieje w systemie Linux „kill” (jak widzę); ale tak zachowuje się „zabijanie”:
Zabicie 0 nie zabija pid 0. Zamiast tego jest opcja zabicia, aby zabić wszystkie procesy w bieżącej grupie . Za pomocą polecenia zabijasz wszystko w identyfikatorze grupy procesów (GID) powłoki, która wydała polecenie kill.
źródło