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