GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi kill , pkill a killall?

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


Linux
  1. Jaký je rozdíl mezi fsck a e2fsck?

  2. Jaký je rozdíl mezi ls a l?

  3. Jaký je rozdíl mezi Nepreemptivním, Preemptivním a Selektivním Preemptivním jádrem?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Jaký je rozdíl mezi strtok_r a strtok_s v C?

  3. Jaký je rozdíl mezi `su -` a `su --login`?

  1. Jaký je rozdíl mezi adduser a useradd?

  2. Jaký je rozdíl mezi pkill a killall?

  3. Jaký je rozdíl mezi $(CC) a $CC?