[ pisac @ 18.01.2006. 23:26 ] @
Imam neku bash skriptu sa kojom restartujem ADSL modem ukoliko se zaglavi. E, sad, restartovanje radim na najprljaviji mogući način:
Code:

modprobe -r uhci
sleep 1
modprobe uhci


Srećom modem mi se nikad ne zaglavljuje, ali sam u testiranju ispravnosti rada skirpte utvrdio da ponekad (ne baš često) skripta stane (tj. pukne) prilikom "modprobe -r uhci".

E, sad, nije samo da tad staje, staje u još nekim situacijama, a što me još više čudi, puca i druga skripta koja radi u pozadini neke stvari koje nemaju blage veze sa ovim što radi prva skripta.

Puca ova prva i ako stavim "modprobe -r uhci &", što bi po meni trebalo da je obezbedi ukoliko se modprobe zaglupi, ali eto ne obezbedjuje je.

U suštini, kad god pukne, ostaje proces sh <defunct> aktivan.

Ono što je zajedničko obema skriptama je da koristim sleep kao pauzu koja pravi razmak izmedju aktivnosti koje skripte obavljaju. Znači, beskonačna petlja, i pauza na kraju petlje.

Ima li neko neku ideju šta da radim, gde grešim, itd...
[ random @ 19.01.2006. 13:38 ] @
A da probaš da ga restartuješ na neki drugi način? Recimo ifconfig eth0 down/up? Vađenje i vraćanje modula u kernel bez obezbeđenja da se nijedna funkcija tog modula trenutno ne koristi nije baš preporučljivo.
[ pisac @ 19.01.2006. 19:57 ] @
To ne restartuje zaista modem. Jedino gašenje USB-a radi posao kako treba.

Nego, nije to smisao pitanja. Skripte pucaju i u drugim situacijama, a smisao pitanja je šta predstavlja sh<defunct>, i šta uraditi da skripta bude otporna na pucanje programa koje sama poziva (a imam utisak da pucaju kad im child proces pukne).
[ random @ 22.01.2006. 20:13 ] @
Probaj da strace-uješ taj modprobe, i skriptu pozivaj sa sh -x. Možda će ti to pomoći da otkriješ gde se tačno skucava.