[ dejan @ 26.02.2003. 21:10 ] @
Imam prezentaciju na zakupljenom serveru. Nekoliko puta mi se desilo da ne mogu da joj pristupim. Kada se u tim situacijama nakacim na server kao root i bacim pogled na aktivne procese bude naletim na neki httpd proces koji traje neverovatno mnogo i koji zauzima >90% CPU resursa.

U 95% slucajeva kill-ovanje procesa ne pomaze, pa moram da resetujem apache kako bi uklonio proces.

Da li mi neko moze reci kako bi mogao da otkrijem uzrok problema ili kako da ga resim?
[ filmil @ 26.02.2003. 21:21 ] @

Voleo bih da vidim taj proces koji ce da prezivi kill -9

Ili mozda bolje:

killall -9 mozilla-bin

(na primer)

f
[ B o j a n @ 27.02.2003. 00:16 ] @
Procesi koji su zaglupljeni usled nekog hw i/o problema ili neke slicne hardverske greske najopustenije "prezivljavaju" -9 signal, sto ih ne cini vise ili manje zaglupljenim nego sto vec jesu.
[ cest @ 17.10.2004. 22:04 ] @
Zaista,

(ispovest :.()
...gresio sam mnogo,... ubijam vec godinama, koristio sam i top i kill i killall,...
signale 15 i 9...
i ubio sam ih na stotine, i hiljade mozda....
procesi su padali i levo i desno oko mene ....
(kraj ispovesti)

kako mogu ubiti ili ukloniti proces ako vec umire (status D na topu) ili ako je zombi (status Z)?
moze li se ukloniti zombi i da li bi ga krenel ikada odstranio sam (ono kao nema I/O vec 8h mora da je crko)?
ima li neko da zna?

hvala unapred, i da znate da se uzdam u vas (ES) jer do sada nikad nisam ostao nasukan sa vase (ES) strane...
najboji forum na srpskom (srpsko-engleskom ili ITsrpskom?) ???
[ L I L I T @ 18.10.2004. 10:47 ] @
zaglupele il ti zombie procese ne možeš da ubiješ,
jer su već mrtvi i iz tog razloga ne reaguju na signal,
ali ubijanjem njegovog parenta ih možeš otkloniti .
[ flylord @ 18.10.2004. 11:37 ] @
LILIT samo nije rekla kako da vidis parenta. Samo izlistas procese sa switchem koji prikazuje tree strukturu procesa
ps -f
ps --forest
npr, za sve procese na sistemu napises
ps auxf

poz
[ caiser @ 18.10.2004. 13:01 ] @
Ili za malo lepsi prikaz
pstree -apu
[ ml01172 @ 18.10.2004. 17:45 ] @
Tvoj "neki proces httpd" predstavlja apache server. Ukoliko ubiješ httpd server, ubijaš http daemon, koji zapravo predstavlja, kao što već rekoh, apache server. Koliko zauzima httpd procesorskog vremena i memorije, stvarno ne bih znao reći, premda ne vjerujem da bi trebao 90%... moguće da neka skripta ne tvoj sajtu ulazi u beskonačnu petlju, u tom slučaju bi trebalo da bude zaglavljeno već podešeni TIMEOUT (vjerovatno u httpd.conf) vremena.

Znači rješenje sigurno nije da ubiješ http daemon, nego da mu riješiš probleme koje ima. Pogledaj error log, vjerovatno će ti biti jasnije. Error log za apache server je obično u /var/log/httpd/error_log, ili /var/log/apache/error_log, premda može biti i na drugim mjestima ako ga je administrator pomjerio ili ako imaš drugačiju linux distribuciju (pretpostavljam da je linux u pitanju)

Ako si se baš riješio da ga ubiješ, čini mi se da je neko spomenuo pstree, a možda i nije, ali je dobra ideja: imaćeš vizuelni prikaz hijerarhije procesa, i sve što je potrebno je da ubiješ prvi proces (roditelj svih ostalih) i trebalo bi da svi ostali puknu, ako su već zombi procesi. Jedino postoji problem koji sam ja jednom imao, a to je da se "spawn"-uju procesi čitavo vrijeme, tj. da se non stop proizvode novi httpd procesi, a naravno nema ih beskonačno jer imaš sistemsku granicu za broj procesa. U tom slučaju ti je jedino rješenje ono "killall -9 httpd", ili da probaš još grubljom silom
Code:
while killall -9 httpd; do :; done


Najpametnije je da provjeris error log i popraviš što se da popraviti.
[ dpop @ 19.10.2004. 15:33 ] @
Prijedlog...

http://freshmeat.net/projects/htop/
[ Sundance @ 21.10.2004. 02:33 ] @
Lijep je ovaj htop, vrlo doradjen, caki trosi manje % procesora od obicnog "top"-a. Mene isto zanima kako killati zombie procese? Kao sto neko rece, uopce ne reagiraju na signale, a cini se da se nakon nekog vremena sami ugase. Je li ima neka opcija u kernelu za postavljanje defaultnog timeouta za zombie procese ili nesto sl.? neki LKM koji to radi?

[update]: http://netric.org/tools/zkill.c
Jedva cekam da ga testiram :)
[ Dejan Lozanovic @ 21.10.2004. 12:32 ] @
Citat:
L I L I T: zaglupele il ti zombie procese ne možeš da ubiješ,
jer su već mrtvi i iz tog razloga ne reaguju na signal,
ali ubijanjem njegovog parenta ih možeš otkloniti .


A ja malo jos da ju dopunim, ti procesi su zavrsili svoj rad tj prekinuli su svo rad pozivom exit, abort ili nekog drugog sistemskog poziva kojim prekidaju svoj rad. Medjutim oni i dalje ostaju prikazani u proces tabeli, i imaju oznaku <defunc> kada ih gledate preko ps komande. Razlog zbog kojeg oni ostaju u proces tabeli jeste povratna informacija procesu roditelju koji je kreirao taj proces, proces roditelj je duzan da pozove sistemski poziv wait ili waitpid sa kojim ce dobiti izlaznu vrednost zavrsenog programa.

Sta se desava u situaciji kada je proces roditelj zavrsio izvrsavanje pre nego sto se zavrsilo izvrsavanje procesa deteta?

Pa u tom slucaju proces roditelj postaje init proces(pid 1). I sam init na sebe preuzima tu odgovornost pozivanja wait sistemskih poziva.