Igen! Ilyen is van Linux alatt...
A megoldás biztonságosabb, mint az M&M-nél.
KILL
Ez pontosan azt jelenti, amit gondolunk, de...
Mondjuk úgy, hogy ha jól csináljuk, akkor ez nem fáj.
Először is nézzük meg, hogy mi a leállítandó folyamat azonosítója [PID].
(Konkrét példákat nem másolok ide be, mert helyszűke miatt elcsúszik a tördelés és úgy már elég zavaros. Mindenki próbálja ki otthon.)
A futó folyamatokról
# ps -ef
utasítással kapunk információt. (Megjegyzés: megy felhasználó alatt is)A ps = jelentés a futó folyamatokról.
A ps -ef = jelentés minden folyamatról.
Javaslom azonban ezt az utasítást:
# ps aux
vagy rövidebben# ps ux
Ez csak az adott felhasználó által birtokolt folyamatokat listázza ki.Keressük meg azt ,amit le akarunk állítani.
Adjuk ki a
# kill [PID]
utasítást.Előfordulhat, hogy a folyamat ugyan leáll, de az általa indított, úgynevezett gyermekfolyamatok nem állnak le.
Ahhoz, hogy ezt elkerüljük, mielőtt leállítanánk a kívánt folyamatot, ellenőrizzük, hogy nem indított-e gyermekfolyamatot. Ezt a ps -ef utasításra kapott listában is megtehetjük.
Ha azonban egy folyamatcsaládra vagyunk kíváncsiak (pl.: httpd), akkor a
# ps -ef | grep httpd
segít nekünk.Nézzük meg a PPID oszlopot, ahol a kivánt folyamat szülő PID-je szerepel, az gyermekfolyamata az általunk leállítani kívánt folyamatnak.
Egy másik megoldás:
# ps axf
ez a megoldás vizuálisan is jelzi a gyermekfolyamatokat.Ezeket a folyamatokat először próbáljuk meg kíméletesen leállítani:
# kill -1 [PID]
A -1 kapcsoló gyakorlatilag azt imitálja, mintha a folyamat tulajdonosa kijelentkezett volna.Ha ez nem megy, akkor egyenként kell kijelölni a folyamatokat:
# kill 24384 24383 24380
Másik lehetőség:# kill -TERM [PID]
vagy# killall httpd
A killall utasítás lehetővé teszi, hogy a folyamat nevét adjuk meg.SIGHUP
Előfordul, hogy nem csak leállítani, de azonnal újraindítani akarunk egy folyamatot.
A SIGHUP vagy "sig-hup" (jelentése: signal hangup) erre való.
Ennek számos módja van:
# kill -HUP [PID]
# kill -HUP [PID]
# killall -HUP [process-name]
# kill -1 [PID]
# killall -1 [process-name]
DE! Ez nekem nem működik UHU alatt! A folyamatot kilövi, de nem indul újra.
Van valaki, aki tudja, hogy miért?
A végső fegyver: kill -9
Ha végképp nem tudunk mit tenni, akkor alkalmazhatjuk a
# kill -9 [PID]
vag az ezzel egyenértékű# kill -s SIGKILL [PID]
utasítást, de ilyenkor zombi folyamatokat hagyhat maga után, amik továbbra is fogyaszthatják a memóriát.Gondot okozhat, ha a zombi folyamat az init [PID1] tulajdonába került. Init folyamatot csak akkor állítsunk le, ha tudjuk, hogy mit csinálunk, mert ilyenkor a rendszer is leáll.
SP
Kiegészítés (© mavo):
(gondoltam, itt jobb lesz mint ha kommentbe tenné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 | 16) SIGSTKFLT |
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 | 31) SIGSYS | 34) SIGRTMIN |
35) SIGRTMIN+1 | 36) SIGRTMIN+2 | 37) SIGRTMIN+3 | 38) SIGRTMIN+4 |
39) SIGRTMIN+5 | 40) SIGRTMIN+6 | 41) SIGRTMIN+7 | 42) SIGRTMIN+84 |
3) SIGRTMIN+9 | 44) SIGRTMIN+10 | 45) SIGRTMIN+11 | 46) SIGRTMIN+12 |
47) SIGRTMIN+13 | 48) SIGRTMIN+14 | 49) SIGRTMIN+15 | 50) SIGRTMAX-14 |
51) SIGRTMAX-13 | 52) SIGRTMAX-12 | 53) SIGRTMAX-11 | 54) SIGRTMAX-10 |
55) SIGRTMAX-9 | 56) SIGRTMAX-8 | 57) SIGRTMAX-7 | 58) SIGRTMAX-6 |
59) SIGRTMAX-5 | 60) SIGRTMAX-4 | 61) SIGRTMAX-3 | 62) SIGRTMAX-2 |
63) SIGRTMAX-1 | 64) SIGRTMAX | ||
Utolsó kommentek