kill
příkaz je velmi jednoduchý obal na kill
systémové volání , který ví pouze o ID procesů (PID). pkill
a killall
jsou také obaly do kill
systémové volání , (ve skutečnosti do knihovny libc, která přímo vyvolává systémové volání), ale může za vás určit PID na základě věcí, jako je název procesu, vlastník procesu, ID relace atd.
Jak pkill
a killall
práci lze zobrazit pomocí ltrace
nebo strace
na ně. V Linuxu oba čtou /proc
souborový systém a pro každý nalezený pid (adresář) projde cestu tak, aby identifikoval proces podle jeho jména nebo jiných atributů. Jak se to dělá, je technicky vzato, specifické pro jádro a systém. Obecně se čtou z /proc/<PID>/stat
který obsahuje název příkazu jako 2. pole. Pro pkill -f
a pgrep
prozkoumejte /cmdline
záznam pro každý procesní záznam PID.
pkill
a pgrep
použijte readproc
systémové volání, zatímco killall
ne. Nedokázal jsem říci, zda existuje rozdíl ve výkonu:budete to muset porovnat sami.
kill a killall jsou nástroje, které poskytují způsob, jak zabít proces. První svým PID, druhý svým jménem.pgrep (seznam) a pkill (výchozí zabití) jsou nástroje, které poskytují způsob, jak poslat zprávu procesu podle jeho jména nebo jiných atributů viz:http://linux.die. net/man/1/pkill Další informace o signálech:http://linux.die.net/man/7/signal