Občas sa stáva, že sa programy zbláznia a vy budete potrebovať dostať ich naspäť pod kontrolu. Program pre tento druh administrácie sa nazýva kill(1), a možno ho použiť na manipulovanie s procesmi rôznym spôsobom. Najzrejmešie použitie kill je zabiť proces. Budete to potrebovať ak program ušiel a používa veľa systémových zdrojov, alebo keď ho už jednoducho máte plné zuby.
Aby ste mohli zabiť proces, musíte vedieť jeho PID alebo jeho meno. PID dostanete pomocou programu ps ako to bolo popísané v poslednej sekcii. Napríklad, aby ste zabili proces 4747, spustíte toto:
$ kill 4747 |
Všimnite si, že aby ste mohli proces zabiť, musíte byť jeho vlastníkom. To je bezpečnostná črta. Keby ste mohli zabíjať procesy naštartované inými užívateľmi, mohli by ste robiť kadejaké zlomyseľné veci. Prirodzene, root môže zabiť akýkoľvek proces na systéme.
Existuje iná odroda programu kill nazvaná killall(1). Tento program robí presne to čo hovorí: zabíja všetky bežiace procesy, ktoré majú určité meno. Keby ste chceli zabiť všetky bežiace procesy vim naťukali by ste nasledovný príkaz:
$ killall vim |
A všetky procesy vim, ktoré vám bežia, zomrú. Keď to urobíte ako root, zabijete všetky procesy vim všetkým užívateľom. To prináša zaujímavý spôsob ako zo systému vykopnúť každého (vrátane vás samých):
# killall bash |
Niekedy normálny kill neurobí to čo treba. Niektoré procesy nezomrú kvôli kill. Budete musieť použiť silnejšiu formu. Ak ten prefíkaný PID 4747 nereaguje na vašu požiadavku na zabitie, môžete urobiť nasledujúce:
$ kill -9 4747 |
To skoro určite spôsobí smrť procesu 4747. Tú istú vec môžete urobiť s killall. To čo sa deje, je že procesu sa posielajú rôzne druhy signálov. Normálny kill posiela procesu signál SIGTERM (terminate - ukonči). kill -9 posiela procesu signál SIGKILL (kill - zabi). Existuje celý zoznam signálov, ktoré môžete použiť. Ich zoznam môžete dostať napísaním:
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR |
Číslo musíte použiť pri kill, zatiaľ čo meno mínus začiatočné “SIG” môžete použiť pri killall. Tu je ďalší príklad:
$ killall -KILL vim |
Posledný spôsob použitia kill je znova naštartovať proces. Poslanie SIGHUP spôsobí večšina procesov, že si znovu prečítajú svoje konfiguračné súbory. To je zvlášť užitočné aby ste systémovým procesom povedali, že si majú znovu prečítať svoje konfiguračné súbory po tom ako ste ich zmenili.