[linux] Procesy v stave "D", tvrdy restart na dialku

Ing. Jan ONDREJ ondrejj na upjs.sk
Úterý Červenec 12 11:55:07 CEST 2005


On Tue, Jul 12, 2005 at 11:48:00AM +0200, zyx na stv.sk wrote:
> 
> Ahoj,
> 
> k tvojej poslednej otazke - echo 'b'>/proc/sysrq-trigger
> pripadne pred tym este echo 's'>/proc/sysrq-trigger

No tak toto je dost brutalne. Pomoze aj "reboot -f", ale je to okamzity
restart bez odpojenia diskov. Spravny system by sa mal spravne restartnut
aj ked mu tam ostanu procesy v stave "D" - "Uninterruptible sleep".
Je to proces ktory caka na nedelitelnu operaciu jadra.
Ak mas taketo procesy casto, tak by si mal skontrolovat hardware
alebo to co s nim robis. Moze nastat ak nejaka cast jadra nevie spracovat
urcitu operaciu. Tou operaciou moze byt zapis do nejakeho zariadenia ...
Moze nastat v pripade, ze to zariadenie neodpoveda, ale mal by tam
nastat po urcitom case timeout a potom proces zmizne. Proces v stave "D"
neberie pamat, je vpodstate ukonceny, caka len na skoncenie operacie.

Ak mi nahodou taky proces vznikne, zvyknem pouzit standardny reboot
a pomaha to. Nerestartujem to sice nadialku, ale system sa mi zvykne
restartnut bez problemov. Co to mas za OS?

		SAL

> On Tue, Jul 12, 2005 at 11:46:13AM +0200, Lubomir Host wrote:
> > Zdravim,
> > 
> > mam nasledovny problem, resp. jedna vec mi na linuxe velmi vadi. Ak je
> > niektory proces v stave "D", napr.:
> > 
> > ------------------------------------------------%<------------------------------------------------
> > root      6079  0.0  0.0   3720   548 ?        D    10:27   0:00 mount -t iso9660 /dev/hda /cdrom/
> > root      6105  0.0  0.0   3720   548 ?        D    10:28   0:00 mount -t iso9660 /dev/hda /cdrom
> > ------------------------------------------------%<------------------------------------------------
> > 
> > tak ho nemozno zabit ani prikazom 'kill -9 6079'. Najhorsie je, ak kvoli
> > tomu ostane visiet normalny restart servera.
> > 
> > Preto mam 2 otazky:
> > 
> > - ako naozaj zabit takyto proces, ktory blokuje nejake zariadenie, ale
> >   nejde ho zabit
> > 
> > - ako restartnut server na dialku (ekvivalent ku stlaceniu klaves
> >   Alt + SysRq + b na konzole), aby som k nemu nemusel ist osobne
> > 
> > Diik, rajo




Další informace o konferenci linux