[PPLUG] Uruchamianie programów przy starcie w zale?no?ci od dost?pno?ci sieci

[PPLUG] Uruchamianie programów przy starcie w zale?no?ci od dost?pno?ci sieci

Adam Cankudis adamc w pons.pl
Pią, 16 Sty 2009, 12:30:49 CET


Dnia 2009-01-15, czw o godzinie 18:39 +0100, Cezary "papaja" pisze:
> Niestety jestem totalnym laikiem jeżeli chodzi o skrypty (nigdy nic
> nie napisałem, ale zawsze musi być ten pierwszy raz ;), stąd powyższy
> opis jest dla mnie trochę niejasny.
> 
> W /var/run/network/ mam tylko dwa pliki: 'initialized' i 'ifstate'.
> Pierwszy jest pusty, a drugi zawiera tylko 'lo=lo' (wartość nie
> zmienia się w zależności od stanu połączenia). Czy to znaczy, że mam
> stworzyć /var/network/stan_mojego_wifi, bo nie bardzo rozumiem?
Najpierw zobacz czy wicd tworzy jakieś swoje pliki lub katalogi
w /var/run, jeśli tak, to oczywiście zerknij, co tam jest i czy da się
wykorzystać.
Sprawdź też plik /proc/net/wireless (w terminalu wpisz
cat /proc/net/wireless gdy jesteś połączony i gdy nie jesteś połączony)
- nie mam przy sobie lapka, żeby sprawdzić, czy dałoby się go
wykorzystać, ale jest w tym pliku pole "status" i może to będzie to.
> 
> na http://newbie.linux.pl/?id=article&kategoria=2&show=172 znalazłem
> krótki tutorial i to jest moja jedyna wiedza o skryptach.
Zobacz http://www.dief.republika.pl/main.html a potem, jeśli radzisz
sobie w angielskim, to http://tldp.org/LDP/abs/html/ (Advanced Bash
Scripting Guide). No i powodzenia przy nauce pisania skryptów w
bash'u ;-)
> 
> wygląda na to, że najprostszy powinien wyglądać tak:
> 
> >#!bin/bash
> >if [online]
> >then
> >kopete
> >skype
> >else
> >:
> >fi
> 
> Pytanie tylko co wpisać w miejsce [online], żeby był to test
> podłączenia do sieci (na razie wicd jest ustawiony na łączenie do
> każdej sieci, do której ma hasło - może później dołożę człony dla
> konkretnych SSID)
moim pomysłem było testowanie zapisu do
pliku /var/run/network/jakkolwiek_chcesz_nazwac_ten_plik, czyli
#!bin/bash
if [ `cat /var/run/network/jakkolwiek_chcesz_nazwac_ten_plik` -eq 1 ]
then
	/usr/bin/kopete
	/usr/bin/skype #jeśli taka jest ścieżka do skype'a
fi

(w if "[ ]" nie oznaczają elementu opcjonalnego, a test - zobacz man
[ (lub man test), nie zapominaj też o spacjach między nawiasami
kwadratowymi a ciągiem testowym, "`" (to nie jest apostrof, tylko tzw.
"gravis" - na klawiaturze leży zwykle tam, gdzie "~"!) oznacza wykonanie
polecenia/poleceń między dwoma takimi znakami (zob.
http://pl.wikipedia.org/wiki/Gravis).
Jeśli wicd zapisuje jakieś dane o stanie połączenia do własnego pliku,
to warto wykorzystać jego zapis i zrobić test na tej wartości.
> 
> i coś takiego powinienem wsadzić do 'start-up programs' w menedżerze sesji?
tak, ale oczywiście jako skrypt, który wcześniej zapiszesz na dysku, a w
start up tylko ścieżka... Mógłbyś też dodać wpis do swojego .bashrc, ale
tu trzeba by testować, czy jesteś już raz zalogowany (i czy są to X-y),
żeby nie odpalał ci ponownie programów (albo w ogóle), gdy np.
zalogujesz się do shella, albo uruchomisz x-teminal.

Pozdrav
cantek




Więcej informacji o liście dyskusyjnej Plug