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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-06-21 01:58:55

  Kamil2685 - Użytkownik

Kamil2685
Użytkownik
Zarejestrowany: 2011-04-06

Dodanie skryptu do autostartu /init.d/

Witam, na pewno wątek poruszany już wiele razy ale nie mogę znaleźć nic co mi WPROST powie jak dodać skrypt w taki sposób aby uruchamiał się podczas startu systemu Debian 6.0.1a. Sprawa polega na tym że mam skrypt, kopiuję go do /etc/init.d/skrypt.sh, nadaje prawa do wykonania i uruchamiam polecenie:

Kod:

update-rc.d /etc/init.d/czas.sh defaults 20

a w rezultacie otrzymuje błedy:

Kod:

update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d//etc/init.d/czas.sh

Czytalem cos ze skrypt powinien wygladac tak jak te w init.d ale nie mam pojecia jak to przeksztalcic, da sie to jakos obejsc?
Pozdrawiam

Tresc skryptu:

Kod:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          czas.sh
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: czas.sh
# Description:      czas.sh
ntpdate -u tempus1.gum.gov.pl 
# [ 212.244.36.227 ]
#ntpdate -u tempus2.gum.gov.pl [ 212.244.36.228 ]
# ntpdate -u ntp.task.gda.pl
 hwclock --systohc

// bbcode — ArnVaker

Offline

 

#2  2011-06-21 02:43:57

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Dodanie skryptu do autostartu /init.d/

Nie lepiej wywołać go w z poziomu /etc/rc.local
Dopisujesz go przed & exit0 w /etc/rc.local i gotowe.
Wpis ma wyglądać tak:

#!/bin/sh -e
#.....
/usr/local/bin/czas.sh &
exit 0

Skrypt wsadź do folderu /usr/local/bin - to jest miejsce na takie skrypty.

Ważny jest ampersand (&), żeby skrypt nie zatrzymał startu komputera.

To by było na tyle
;-)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2011-06-21 10:01:09

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Dodanie skryptu do autostartu /init.d/

Kamil2685 napisał(-a):

Sprawa polega na tym że mam skrypt, kopiuję go do /etc/init.d/skrypt.sh, nadaje prawa do wykonania i uruchamiam polecenie:

Kod:

update-rc.d /etc/init.d/czas.sh defaults 20

a w rezultacie otrzymuje błedy:

Kod:

update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d//etc/init.d/czas.sh

Sądząc po komunikacie błędu, powinieneś zrobić

Kod:

update-rc.d czas.sh defaults 20

Ale ja się tam nie znam, swój jeden skrypt z init.d napisałem na podstawie /etc/init.d/skeleton i dodałem z poziomu sysv-rc-conf.

Offline

 

#4  2011-06-21 13:16:09

  tabi19 - Użytkownik

tabi19
Użytkownik
Skąd: Praszka (Opolskie)
Zarejestrowany: 2010-09-24

Re: Dodanie skryptu do autostartu /init.d/

Ja zawsze dodaję tak jak kolega wyżej napisał:

Kod:

update-rc.d czas.sh defaults 20

I jak dotąd zawsze działa ;)

Pozdrawiam

Offline

 

#5  2011-06-21 14:54:47

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: Dodanie skryptu do autostartu /init.d/

W skrypcie startowym, zaraz po #!/bin/bash trzeba dodać nagłówek :

Kod:

### BEGIN INIT INFO
# Provides:          skrypt
# Required-Start:  patrz_niżej_co tu dodać  
# Required-Stop:  patrz_niżej_co_tu_dodać
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: proba
# Description:       Enable service provided by daemon.
### END INIT INFO

Gdy w sekcji Required dodamy :
$local_fs $all – dopisane zostanie na samym końcu
$remote_fs $syslog – dopisane zostanie z „numerem 19”
Zostawiając sekcje pustą dostaje „numer 01”
Do startu dodajesz skrypt będąc w katalogu /etc/init.d/ i wydając komende :

Kod:

update-rc.d moj_skrypt.sh defaults

Edytka
Aj sory nie zauważyłem, że masz nagłówek, więc tylko ostatnie zdanie będzie rozwiązaniem Twojego problemu.

Ostatnio edytowany przez ba10 (2011-06-21 15:04:12)


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój Blog, a później Tańczymy ;)

Offline

 

#6  2011-06-21 19:34:29

  Kamil2685 - Użytkownik

Kamil2685
Użytkownik
Zarejestrowany: 2011-04-06

Re: Dodanie skryptu do autostartu /init.d/

Dzięki zrobiłem tak jak poradził mi Jackelex.
Jeszcze jedno pytanie tylko mam związane ze skryptami, a mianowicie jeżeli mam zdefiniowane w skrypcie wykorzystanie powiedzmy np 10 parametrów które wykorzystuje ale wykorzystam tylko 2 np. to w wyniku wywołania skryptu w sposób: ./skrypt par1 par2
otrzymam coś takiego:
par1 par20
skrypt od środka powiedzmy ze zawiera tylko:
echo "$1 $2 $3 $4 $5 $6 $7 $8 $9 $10"
dlaczego to zero jest dodawane na końcu to się domyślam ale jak się go pozbyć przełączniki -c/ -s nie bardzo działają jak to ogarnąć?

Offline

 

#7  2011-06-21 19:40:14

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Dodanie skryptu do autostartu /init.d/

nie rób

Kod:

 echo $zmienna1 $zmienna2....

tylko zrób tak

Kod:

for i in $@;do echo $i;done

Wtedy wyświetli Ci tylko tyle parametrów i bez dodatków ile podasz do skrzyptu.


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#8  2011-06-21 19:45:20

  andreq - Członek DUG

andreq
Członek DUG
Skąd: Nisko
Zarejestrowany: 2005-01-11

Re: Dodanie skryptu do autostartu /init.d/

Żadne zero nie jest dodawane, pewnie zamiast $2 wpisałeś $20.

Offline

 

#9  2011-06-21 20:20:42

  thalcave - prawie jak admin

thalcave
prawie jak admin
Skąd: odległa galaktyka
Zarejestrowany: 2007-05-17

Re: Dodanie skryptu do autostartu /init.d/

winnetou napisał(-a):

nie rób

Kod:

 echo $zmienna1 $zmienna2....

tylko zrób tak

Kod:

for i in $@;do echo $i;done

Wtedy wyświetli Ci tylko tyle parametrów i bez dodatków ile podasz do skrzyptu.

albo po prostu

Kod:

echo "$@"

linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

#10  2011-06-21 20:21:30

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Dodanie skryptu do autostartu /init.d/

@thal - w sumie ;) najciemniej pod latarnią xD Nie wiem dlaczego ale na najprostsze rozwiązania wpadam na końcu albo wcale ;)


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#11  2011-06-21 20:36:23

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Dodanie skryptu do autostartu /init.d/

winnetou napisał(-a):

@thal - w sumie ;) najciemniej pod latarnią xD Nie wiem dlaczego ale na najprostsze rozwiązania wpadam na końcu albo wcale ;)

W tym jednym przypadku to rozwiązanie się sprawdzi, ale rzadko kiedy chcesz po prostu wypisać parametry na STDOUT. Zazwyczaj chcesz coś z nimi zrobić. A wtedy i tak musisz użyć pętli. Właśnie dlatego nie wpadłeś na to rozwiązanie — jest równie proste co nieprzydatne.

Kamil2685 napisał(-a):

np. to w wyniku wywołania skryptu w sposób: ./skrypt par1 par2
otrzymam coś takiego:
par1 par20

Nie, otrzymasz

Kod:

par1 par2        par10

bash nie wie, czy $10 to parametr 10. czy parametr 1. potraktowany jako ciąg znaków z dopisanym zerem na końcu. Uznaje, że chodzi o ten drugi przypadek. Aby go upewnić, że chodzi jednak o pierwszy (czyli 10. parametr pozycyjny) zapisz to:

Kod:

${10}

Offline

 

#12  2011-06-21 20:37:37

  Kamil2685 - Użytkownik

Kamil2685
Użytkownik
Zarejestrowany: 2011-04-06

Re: Dodanie skryptu do autostartu /init.d/

Dziękuje ;*
Pętelka to o wiele lepsze rozwiązanie tylko troszeczkę cięższe ale grunt że działa ;)
Zero wątpliwości jeszcze raz dziękuje za pomoc no i coż temat chyba do zamknięcia ;d

Offline

 

#13  2011-06-21 21:17:37

  thalcave - prawie jak admin

thalcave
prawie jak admin
Skąd: odległa galaktyka
Zarejestrowany: 2007-05-17

Re: Dodanie skryptu do autostartu /init.d/

Pętelka to o wiele lepsze rozwiązanie tylko troszeczkę cięższe ale grunt że działa ;)

jest elastyczne i w takich przypadkach powinieneś je stosować unikając rozwiązań na sztywno

Ostatnio edytowany przez thalcave (2011-06-21 21:18:00)


linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)