Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Niedawno dodałem da faq skrypt wlasnej roboty:
if [ -z `pgrep mpd` ] then mpd fi
działa na tej zasadzie ze pgrep wypisuje pidy procesu (tu mpd) a warunek -z sprawdza czy podany lancuch jest pusty jak tak to uruchamia mpd.
Mpd jest demonem ktory (najczesciej podczas odtwarzania muzyki) powiela sie i pgrep wtedy wywala cos takiego:
rafal@~> pgrep mpd 3646 6511 6512
Poniewaz skrypt ten dodałem do .bashrc wykonywany jest zawsze podczas logowania sie oraz podczas uruchamiania terminala i tu jest problem gdy mpd jest trzy razy uruchominy (co jest zupelnie normalne), zalogowanie sie albo uruchomienie terminala powoduje ze jeszcze przed promtem pojwaia sie tekst:
bash: [: too many arguments
Gdy mpd "ma" jeden pid problem nie występuje.
Bede bardzo widzieczny za pomoc bo ze skrypceniu w bashu jestem noga, to jest jedyny skrypt który napisałem ;)
Offline
teraz dostaje
bash: [: 6511: binary operator expected
Offline
Jednak najprostrze rozwiazania sa najlepsze wystarczy do pgrepa dodac opcje -n która powoduje ze wypisany jest tylko pid najmlodszego porcesu
if [ -z `pgrep -n mpd` ] then mpd fi
EDIT:
czadman wyprzedziles mnie troche ;)
PS
dzieki za pomoc
Offline