Jump to content

Rc.Local Nie Otwiera Scryptu - Centos


tomas92
 Share

Recommended Posts

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
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

& 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 ?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...