hpasm na PLD Th

Paweł Zuzelski z w xatka.net
Śro, 16 Wrz 2009, 11:54:25 CEST


On Wed, 16 Sep 2009, Grzegorz Pietrzak wrote:
> Zainstalowałem sobie hpasm na takim starym sprzęcie Proliant ML370.
> No i zonk bo nie chce się uruchamiać jeden ze skryptów.
> Poniżej fragment który wadzi.
> Może ktoś mo podpowiedzieć co autor miał na myśli w tym fragmencie skryptu,
> bo ja na to chyba za cieńki jestem...
> 
> 
> ############### począteczek wycineczka
> #first of all, I do not want any file handles
> #open other than 0,1,2
> for FILE in /proc/$$/fd/*; do
>         FD=`basename $FILE`
>         #exempt the standard file descriptor
>         [ "$FD" = "0" ] && continue
>         [ "$FD" = "1" ] && continue
>         [ "$FD" = "2" ] && continue
>         # this is a file to the script at hand
>         [ "$FD" = "255" ] && continue
>         LINKTO=`ls -o $FILE 2> /dev/null | awk '{print $10}'`
>         if [ -e "$LINKTO" ]; then
> #               echo "Closing $FD pointing to $LINKTO"
>                eval "exec $FD>&-"
>                 true
>         fi
> done
> ############## końcóweczka
> 
> Ja narazie zakomentowałem wywołanie: eval "exec $FD>&-"
> i narazie działa i nie wybucha, ale co to jest?
To jest zamknięcie deskryptora pliku numer $FD otwartego wcześniej
do zapisu. Ale moim zdaniem powinno być po prostu:
exec $FD>&-
Tzn bez tego eval.

> W postaci pierwotnej skrypt wypluwa komunikat " 10: not found"
Niech zgadnę. Uruchamiasz skrypt z "shella" w mc. Jeśli tak, to masz
otwarte /dev/tty na FD 10. Skrypt zamyka FD 10, który jednak ciągle
jest potrzebny.


> W odpowiednim katalogu procesu w /proc do którego się dobiera skrypt,
> nie ma pliku o nazwie "255"
[ "$FD" = "255" ] && continue
Czyli, jeżeli $FD == 255, to nie wykonuj dalszej części pętli a
odrazu przejdź do następnego obrotu pętli.


> jest za to plik o nazwie "10".
> Zmienić w skrypcie nazwę pliku do porównania z "255" na "10" i powinno 
> wystarczyć?
> Czy to jest różnica między dystrybucjami, bo hpasm napisany oryginalnie dla 
> jakiegoś tam RedHata, czy co innego co jest po za moimi możliwościami 
> rozumienia?... :)
Spróbuj uruchomić z normalnego shella, nie spod mc. Ewentualnie
spróbuj dodać linijkę:
[ "$FD" = "10" ] && continue
(ale nie usuwaj 255), żeby nie zamykał też tego FD.

-- 
Pozdrawiam,
Paweł


Więcej informacji o liście dyskusyjnej pld-users-pl