Dešava se da se program loše ponaša i da je potrebno ponovo da se
pokrene. Program koji radi taj administrativni zadatak se zove kill(1) i koristi se za manipulaciju procesima na nekoliko
načina. Najočigledniji način korišćenja je kada izdamo samo kill komandu i tako ubijemo proces. To je potrebno da uradite ako
program koristi dosta resurasa sistema, ili vam je muka od toga šta on radi.
Da biste ubili proces, potrebno je znate njegov PID ili njegovo ime. Da biste dobili
PID procesa , koristite ps komandu onako kako je objašnjeno
u zadnjem odeljku. Na primer, za ubijanje procesa 4747, izdaćete sledeću
komadnu:
Zapazite da morate da budete vlasnik procesa da biste mogli da ga ubijete. To je tako
zbog sigunosti. Da bi vam bilo dozvoljeno da ubijete procese koje su startovali drugi
korisnici, bili biste u mogućnosti da radite dosta malicioznih stvari. Naravno, root može da ubije svaki proces na sistemu.
Postoji jedna varijacija kill komande koja se zove killall(1). Ovaj program radi baš ono što mu i ime govori:
ubija sve pokrenute procese određenog naziva. Ako želite da ubijete sve
pokrenute vim procese, trebali biste da otkucate sledeću
komandu:
Jedan jedini, ili svi pokrenuti vim procesi će biti
ubijeni. Ako to uradite kao root ubićete sve vim procese svih korisnika. Evo zanimljivog načina da uklonite
svakog korisnika (uključujući i sebe) sa sistema:
Ponekad regularan kill ne odradi svoj posao. Određeni procesi neću da umru
sa kill. Stoga je potrebno da koristite moćniju formu kill komande. Oko ovaj
bezobrazni PID 4747 ne odgovara na vaš kill zahtev, trebali biste ovako :
Na ovaj način zasigurno će proces 4747 umreti. Sličnu stvar možete
da uradite i sa killall komandom. Sve ovo je odraz toga što
šaljemo različite signale procesima. Regularan kill
šalje SIGTERM (terminate) signal ka procesima, što
govori da oni treba da završe ono što su započeli, očiste se, i
izađu. kill -9 šalje SIGKILL
(kill) signal procesima, i na taj način se proces obara. Na ovaj način procesu
nije dozvoljno čišćenje, tako da ponekad može doći do toga da se
podaci pokvare. Ovde imate na raspolaganju kompletnu listu signala. Listig signala
možete dobiti ako otkucate sledeće:
% 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
|
Sa komandom kill treba da se koristi broj, dok ime signala
(uz odbacicanje “SIG” prefiksa) treba da se koristi sa killall komandom. Evo još jednog primera:
Zadnja upotreba kill komande je restarovanje procesa. Slanjem
SIGHUP omogućava da većina procesa ponovo pročita
svoje konfiguracione fajlove. Ovo je od esecijalne koristi kada je potrebno da sistem
ponovo učita konfiguracione fajlove nakon njihovog uređivanja.