Skocz do zawartości

Rc.Local Nie Otwiera Scryptu - Centos


tomas92

Rekomendowane odpowiedzi

Witam. Mam problem z otwieraniem skryptu przez rc.local . Wszystko odbywa sie na centosie 6. Skrypt to :

 

#! /bin/sh

/usr/local/bin/noip.client -u user -p pasword -d domena -b 5

exit 0

Rc.local równiez nie otwiera programu bezposrednio poprzez komende. Scrypt otwierany recznie dziala tak jak i program. Chmod 777 na to i na to. Rc.local otwiera inne aplikacje.

 

Ktos ma pomysl jak sobie z tym poradzic ? Z góry dzieki.

  • Downvote 2
Odnośnik do komentarza
Udostępnij na innych stronach

Nastepnym razem patrz co wklejasz... wrzuciles tu swoje haslo -.-

Username i pass powinien byc w jakims pliku konfiguracyjnym. Skonfiguruj to poprawnie - to po pierwsze.

I dodaj znak & na koncu, zeby polecenie sie wykonywalo w tle. Choc dalej nie mam pojecia dlaczego moze nie dzialac.

Odnośnik do komentarza
Udostępnij na innych stronach

& dodany. Co do samego problemu. noip.client odpala sie za kazdym razem poprzez dodanie do niego parametrów konfiguracyjnych. Uwazam ze to wlasnie przez nie jest problem. Rc.local odpala inne aplikacje i scrypty a z tym ma problem. Wszystko jest zrobione zgodnie z instrukcja

 

3. Prawidlowe wykonanie programu ma postac:

 

/usr/local/bin/noip.client -u uzytkownik -p haslo -d domena

 

- takie uruchomienie jednorazowo wysle pakiet aktualizujacy domene do systemu No-Ip. To postac wykonania zalecana do uruchamiania z systemu 'cron'.

 

4. Alternatywa

 

Mozna równiez uruchomic program w ponizszy sposób, program wtedy zostanie w pamieci i bedzie aktualizowal sie sam, co N minut. Minimalna wartosc czasu N to 5 minut:

 

/usr/local/bin/noip.client -u uzytkownik -p haslo -d domena -b N

 

Odpowiednie pozadane wykonanie programu nalezy umiescic w plikach startowych, najczesciej to bedzie /etc/rc.d/rc.local, lub podobnie w zaleznosci od dystrybucji.

 

Opis argumentów programu uzyskamy równiez uruchamiajac go bez zadnych parametrów.

 

Ktos wpadl co moze byc przyczyna ?

Odnośnik do komentarza
Udostępnij na innych stronach

Niepotrzebnie zrobiles ten skrypt. Mozesz w rc.local po prostu dopisac

sleep 1
/usr/local/bin/noip.client -u uzytkownik -p haslo -d domena &
sleep 1

Na Scientific Linux 6 tez zauwazylem, ze rc.local po prostu nie "lyka" wszystkiego. Przykladowo nie dziala z niego wpa_supplicant. Z palca owszem. Na CentOS 4 dzialalo w porzadku.

 

Ten sleep sie czasem przydaje. W kilku przypadkach mi pomagalo.

Odnośnik do komentarza
Udostępnij na innych stronach

A moze na wszelki wypadek taki maly skrypcik ?

#!/bin/bash
#Skrypcik wstrzymuje prace (sleep 1) dopoki nie bedzie internetu
#wtedy startuje to co wklejone po "start skryptu" i nastepuje wyjscie ze skryptu (exit)
while true; do 
if [ "`ping -c 1 www.onet.pl > /dev/null 2>&1`" ]; then
 #start skryptu
 exit
fi
sleep 1
done

 

edit:Thx WalDo - przypomnialem sobie o tym rano na wykladach :P

Odnośnik do komentarza
Udostępnij na innych stronach

Już pomijając to, że ten skrypt nie zadziała to jak można wrzucić pętlę nieskończoną do startu systemu? Nie jestem tak nastawiony anty jak na uczelniach i uznaję pętle nieskończone i breaki, ale tylko w sytuacjach, kiedy wiem, że prędzej czy później puści. W tym skrypcie, jak nie będzie neta to nie puści i system się nie uruchomi. To powinno pójść do jako zadanie równoległe z timeoutem.

Odnośnik do komentarza
Udostępnij na innych stronach

Już pomijając to, że ten skrypt nie zadziała to jak można wrzucić pętlę nieskończoną do startu systemu? Nie jestem tak nastawiony anty jak na uczelniach i uznaję pętle nieskończone i breaki, ale tylko w sytuacjach, kiedy wiem, że prędzej czy później puści. W tym skrypcie, jak nie będzie neta to nie puści i system się nie uruchomi. To powinno pójść do jako zadanie równoległe z timeoutem.

 

System nie ruszył nawet połączony z internetem ( łączy się przez kabel przed wczytaniem rc.local). Udało mi się włączyć go dopiero poprzez usunięcie skryptu . Ubuntu live cd , zamontowałem /home i usunąłem wpis w rc.local. Nie polecam ładowania nie sprawdzonych skryptów

Odnośnik do komentarza
Udostępnij na innych stronach

System nie ruszyl nawet polaczony z internetem ( laczy sie przez kabel przed wczytaniem rc.local).

No wlasnie, dlatego napisalem w pierwszych slowa, ze nie zadziala. Warunek w if nie jest poprawny. Mialem na mysli to, ze gdyby nawet dzialal jak w zalozeniach to i tak blokowalby system.

Rozwiazales glówny problem tematu?

EDIT: sensownie wygladajace sprawdzenie czy jest polaczenie z netem mozna znalezc w tym poscie http://www.linuxquestions.org/questions/linux-networking-3/script-to-check-connection-and-restart-network-if-down-262281/#post3815629 które sprawdza takze poprawnosc DNS.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...