hpasm na PLD Th
Łukasz Maśko
masko w ipipan.waw.pl
Śro, 16 Wrz 2009, 11:41:33 CEST
Dnia środa, 16 września 2009, Grzegorz Pietrzak napisał:
> 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?
> W postaci pierwotnej skrypt wypluwa komunikat " 10: not found"
$FD powinien zawierać deskryptor pliku otwartego do odczytu/zapisu.
Instrukcja exec $FD>&- służy do zamknięcia tego deskryptora. Niestety,
jeśli taką linijkę próbuje się wywołać bezpośrednio, znaczek & jest
traktowany inaczej i dlatego do jej wykonania użyto eval.
> W odpowiednim katalogu procesu w /proc do którego się dobiera skrypt,
> nie ma pliku o nazwie "255" jest za to plik o nazwie "10".
> Zmienić w skrypcie nazwę pliku do porównania z "255" na "10" i powinno
> wystarczyć?
Nie, to nie będzie działać. Deskryptor 255 jest nieszkodliwy. Ja obstawiam,
że błąd siedzi w $10 w linijce LINKTO=... Wynik ls jest o 1 pole za krótki
(jest 9 pól, nie 10), więc $10 zwraca pusty string. Zacząłbym od zamiany
tego $10 na $9.
> 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?... :)
Wydaje się, że w tym przypadku różnica siedzi w implementacji ls i
parametru -o.
--
Łukasz Maśko GG: 2441498 _o)
Lukasz.Masko(at)ipipan.waw.pl /\\
Registered Linux User #61028 _\_V
Ubuntu: staroafrykańskie słowo oznaczające "Nie umiem zainstalować Debiana"
Więcej informacji o liście dyskusyjnej pld-users-pl