Chyby ve skriptu rc?

Pavel Kankovsky peak na kerberos.troja.mff.cuni.cz
Středa Září 23 11:27:08 CEST 1998


On Wed, 23 Sep 1998, Martin Horak wrote:

> Preji hezky den. 
> Zacinam se ucit programovat davky bashe a pri hledani inspirace ve startovacich 
> davkach rc.* jsem narazil na nasledujici podle mne nesrovnalosti (me komentare 
> oznaceny =>). Vse se tyka RedHatu 4.2.

> # Now find out what the current and what the previous runlevel are.
> argv1="$1"
> set `/sbin/runlevel` 

Tady jsem si dovolil opravit formatovani

> runlevel=$2 
> previous=$1 
> export runlevel previous  
> 
> # Get first argument. Set new runlevel to this argument. 
> [ "$1" != "" ] && runlevel="$argv1"
> => ^^
> => Prvni chyba - podle mne by zde melo byt $argv1. Funkce je (snad) takovato: 
> Pri spusteni s parametrem se uvazuje runlevel dana parametrem, jinak  aktualni 
> runlevel. $1 bude pri spravne funkci /sbin/runlevel vzdy nastavena, ale 
> parametr nemusi byt predan.     

asi ano... jenze on to stejne nikdo nikdy nespousti bez parametru

...

> 		[ -f /var/lock/subsys/$subsys ] && \
> 			[ -f /var/lock/subsys/${subsys}.init ] && continue
> 
> => Chyba 2: Pokud nebudou OBA ($subsys i ${subsys}.init) nastartuj demona, coz  
> by vlastne melo startovat demona vzdy, protoze ten vytvori pouze jeden ze 
> zamykacich souboru.

pravda, nastesti malokdy dochazi k netrivialnim zmenam runlevelu, kdy by
nejaky subsystem byl uz spusten

> => Treti chybu jsem objevil u lpd, ktery mel /etc/rc.d/rc?.d/S??lpd.init.
> potom se v rc testuje pritomnost /var/lock/subsys/lpd.init a 
> /var/lock/subsys/lpd.init.init ale ne /var/lock/subsys/lpd, ktery startovaci 
> skript lpd vytvari.

ja mam jen [SK]??lpd...

> Pripada mi to jako docela zakladni chyby na to, aby se dostaly do distribuce 
> Linuxu. Je to mozne, nebo je chyba u mne?

mozne je vsechno, jsou to dost trivialni chyby (ale vsichni dobre vime,
ze pro kazdou chybu existuje clovek, ktery ji udela), ale maji tu
vlastnost, ze se bezne neprojevuji, takze snadno propadnou sitem testovani

v kazdem pripade by stalo za to jeste konfrontovat 5.1 a pripadne napsat
na bugs na redhat.com

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"You can't be truly paranoid unless you're sure they have already got you."




Další informace o konferenci Linux