Zabít (příkaz) - Kill (command)
Původní autoři | AT&T Bell Laboratories |
---|---|
Vývojáři | Rozličný open-source a komerční vývojáři |
První vydání | Únor 1973 |
Operační systém | Unix, Unixový, Plán 9, Peklo, OS-9, Okna, ReactOS, Jedinečnost, IBM i |
Typ | Příkaz |
v výpočetní, zabít
je příkaz který se používá v několika populárních operační systémy poslat signály k běhu procesy.
Implementace
Unix a podobné unixové
v Unix a Unixový operační systémy, zabít
je příkaz slouží k odeslání signál k procesu. Ve výchozím nastavení je odeslaná zpráva signál ukončení, který požaduje, aby proces výstup. Ale zabít je něco nesprávného pojmenování; odeslaný signál nemusí mít nic společného se zabitím procesu. The zabít
příkaz je a obal okolo zabít()
systémové volání, který posílá signály na procesy nebo skupiny procesů v systému, na které odkazuje jejich číselná hodnota ID procesu (PID) nebo skupina procesů ID (PGID). zabít
je vždy poskytován jako samostatný nástroj podle definice v POSIX Standard. Nicméně, většina mušle mít vestavěný zabít
příkazy, které se od něj mohou mírně lišit.[1][2]
Existuje mnoho různých signálů, které lze odeslat (viz signál (úplný seznam), ačkoli signály, o které se uživatelé obecně nejvíce zajímají, jsou SIGTERM ("ukončit") a SIGKILL ("zabít"). Výchozí odeslaný signál je SIGTERM. Programy, které zpracovávají tento signál, mohou před ukončením provést užitečné operace vyčištění (například uložení informací o konfiguraci do souboru). Mnoho programů však pro tento signál neimplementuje speciální obslužný program, a proto se místo toho volá výchozí obslužný program signálu. Jindy se dokonce proces, který má speciální obslužný program, zvrtl způsobem, který mu brání ve správném zpracování signálu.
Všechny signály kromě SIGKILL a SIGSTOP („stop“) lze procesem „zachytit“, což znamená, že když program přijímá tyto signály, lze volat speciální funkci. Dvě výjimky SIGKILL a SIGSTOP vidí pouze hostitelský systém jádro, poskytující spolehlivé způsoby kontroly provádění procesů. SIGKILL proces zabije a SIGSTOP ho pozastaví, dokud a SIGCONT („pokračovat“) je přijato.[3]
Unix poskytuje bezpečnostní mechanismy, které zabraňují neoprávněným uživatelům zabít další procesy. V zásadě platí, že pokud má proces posílat signál jinému, musí být vlastník signalizačního procesu stejný jako vlastník přijímajícího procesu nebo musí být superuživatel.
Všechny dostupné signály mají různá jména a jsou mapovány na určitá čísla. Je důležité si uvědomit, že konkrétní mapování mezi čísly a signály se může mezi implementacemi Unixu lišit. SIGTERM má často 15, zatímco SIGKILL má 9.
Příklady
Proces lze odeslat a SIGTERM signál čtyřmi způsoby (v tomto případě je ID procesu '1234'):
zabít 1234zabít - je TERMÍN 1234zabít -OBDOBÍ 1234zabít -15 1234
Proces lze odeslat a SIGKILL signál třemi způsoby:
zabít -S ZABÍJTE 1234zabít -ZABÍT 1234zabít -9 1234
Mezi další užitečné signály patří HUP, TRAP, INT, SEGV a ALRM. HUP odešle ZOBRAZENÍ signál. Někteří démoni, včetně Apache a Poslat mail, přečíst znovu konfigurační soubory po obdržení SIGHUP, takže příkaz kill může být použit i pro toto. A SIGINT signál lze generovat velmi jednoduše stisknutím CTRL+C ve většině Unix skořápky. Je také běžné pro CTRL+Z být mapován na SIGTSTP („koncová zastávka“) a pro CTRL+\ (zpětné lomítko), na které se má namapovat SIGQUIT, což může přinutit program provést a skládka jádra.
Související programy
- zabít všechny - u některých variant Unixu, jako je Solaris, tento nástroj je automaticky vyvolán, když systém prochází a vypnout. Chová se podobně jako výše uvedený příkaz kill, ale místo odeslání signálu jednotlivému procesu je signál odeslán všem procesům v systému. Nicméně, na jiných, jako je IRIX, Linux, a FreeBSD, je zadán argument určující název procesu (nebo procesů), které mají být zabity. Například zabít proces, jako je například instance XMMS hudební přehrávač vyvolaný
xmms
, uživatel by spustil příkazkillall xmms
. To by zabilo všechny pojmenované procesyxmms
, a je ekvivalentní szabít `pidof xmms`
na systémech jako Solaris. - pkill - signalizuje procesy na základě jména a dalších atributů. Byl představen v systému Solaris 7 a od té doby byl znovu implementován pro Linux, NetBSD a OpenBSD. Díky pkill jsou procesy zabíjení na základě jejich jména mnohem pohodlnější: např. zabít pojmenovaný proces Firefox bez pkill (a bez pgrep ), jeden by musel psát
kill `ps --no-headers -C firefox -o pid`
zatímco s pkill lze jednoduše psátpkill firefox
. - xkill - pokud je volán bez jakýchkoli parametrů, kurzor myši se změní ze šipky na ikonu „x“ a uživatel může kliknutím na okno přinutit X server k ukončení spojení s klientem, který okno vlastní. To často způsobí ukončení procesu, když zjistí, že jeho připojení k serveru X bylo uzavřeno.
Microware OS-9
The zabít
příkaz je také k dispozici jako vestavěný shell v OS-9 skořápka. Používá se k zabití jiného procesu podle ID procesu.[4]
Příklad
Zastavte proces s ID procesu "7":
$ zabít 7
Microsoft Windows a ReactOS

úkol
povel zapnut Microsoft WindowsV interpretaci příkazového řádku společnosti Microsoft Windows PowerShell, zabít
je předdefinováno alias příkazu pro Stop-proces
rutina.
Microsoft Windows XP, Průhled a 7 zahrnout příkaz úkol
[5] ukončit procesy. Obvyklá syntaxe tohoto příkazu je taskkill / im "IMAGENAME"
. "Nepodporovaná" verze zabít
byl zahrnut v několika verzích Microsoft Windows Zdrojové sady k dispozici pro Windows 98.[6]
GNU verze zabít
byly přeneseny prostřednictvím Cygwin a spustit uvnitř unixového subsystému prostředí, který Služby Microsoft Windows pro UNIX poskytuje (Microsoft koupil Windows Services pro unixový velkoobchod prostřednictvím nákupu Softway Systems a jejich Interix 17. září 1999).[7]

úkol
povel zapnut ReactOSThe ReactOS implementace je založena na variantě Windows. Vyvinuli jej Andrew Riedi, Andrew Nguyen a He Yang. Je licencován pod GPLv2.1 nebo později.[8]
Příklady
Najděte všechny procesy začínající písmenem „p“, které byly vyvinuty společností Microsoft, použijte více než 10 MB paměti a zabijte je:
PS C: >ps p* | kde { $_.Společnost -jako „Microsoft *“ -a $_.WorkingSet -gt 10 MB } | zabít -potvrditPotvrditOpravdu chcete provést tuto akci?Provádění operace „Stop-proces“ na cílové „powerhell (6832)“.[Y] Ano [A] Ano všem [N] Ne [L] Ne všem [S] Pozastavit [?] Nápověda (výchozí je „Y“): APS C: >
Zde je jednodušší příklad, který žádá postup Explorer.exe ukončit:
PS C: >úkol /im badatel.exe
Tento příklad vynutí proces k ukončení:
PS C: >úkol /F /im badatel.exe
Procesy mohou být také zabity jejich PID číslo:
PS C: >úkol /pid 3476
Microsoft Singularity
Singularity shell, standardní shell pro Microsoft Research je mikrokernel operační systém Jedinečnost zahrnuje a zabít
příkaz k ukončení procesů na pozadí.
Příklady
Zastavte proces s názvem "SampleProcess":
Singularity> zabít SampleProcess
Zastavte proces s identifikátorem procesu "42":
Singularity> kill 42
Plán 9 od Bell Labs
Pod Plán 9 od Bell Labs „program kill ve skutečnosti neprovede toto ukončení ani nepřijme ID procesu. Spíše přebírá skutečné názvy procesů a vydává příkazy rc, skořápka použitý plánem 9 k zabití procesu.[9]
Podobný příkaz se nazývá zabít
, což dělá totéž, ale pro procesy, které se tímto způsobem odmítají zabít.[9]
Příklady
Například zabít všechny instance troff, jeden typy:
zabít troffa rc
Ostatní
The zabít příkaz byl také přenesen do IBM i operační systém.[10]
Viz také
Reference
- ^ „Bash Reference Manual: Job Control Builtins“. Projekt GNU. Citováno 2015-02-24.
- ^ "zsh: 17. Shell Builtin Commands". Citováno 2015-02-24.
- ^ „
“ . The Open Group Base Specification Issue 7. Citováno 2015-02-24. - ^ Paul S. Dayan (1992). OS-9 Guru - 1: Fakta. Galactic Industrial Limited. ISBN 0-9519228-0-7.
- ^ „Taskkill“. Microsoft TechNet. Citováno 2015-02-24.
- ^ „Resource Kit Utilities - Windows '98 Resource Kit“. Software ActiveXperts. Citováno 2015-02-24.
- ^ „GNU utilities pro Win32“. Archivovány od originál dne 2006-02-09. Citováno 2015-02-24.
- ^ reagovatos / taskkill.c ve společnosti master · reagovatos / reagovatos · GitHub
- ^ A b „UNIX to Plan 9 command translation“. Plán 9 wiki. Archivovány od originál dne 2008-09-05. Citováno 2015-02-24.
- ^ IBM. „IBM System i verze 7.2 Programování Qshell“ (PDF). Citováno 2020-09-05.
Další čtení
- McElhearn, Kirk (2006). Příkazový řádek Mac OS X: Unix Under the Hood. John Wiley & Sons. ISBN 978-0470113851.
externí odkazy
- Příkaz: Specifikace Single UNIX, Vydání 7 od Otevřená skupina - Referenční příručka a nástroje,
- Systémové volání: Specifikace Single UNIX, Vydání 7 od Otevřená skupina - Reference systémových rozhraní,
- Plán 9 Programátorská příručka, svazek 1 –
- Peklo Obecné příkazy Manuál –
- Linux Příkazy uživatele Manuál –