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

[i]// [tt]bbcode[/tt] — ArnVaker[/i]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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
#.....
[b]/usr/local/bin/czas.sh &[/b]
exit 0[/quote]
Skrypt wsadź do folderu [b]/usr/local/bin[/b] - to jest miejsce na takie skrypty.

Ważny jest ampersand ([b]&[/b]), ż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: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: Dodanie skryptu do autostartu /init.d/

[quote=Kamil2685]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

[/quote]
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 [tt]/etc/init.d/skeleton[/tt] i dodałem z poziomu sysv-rc-conf.


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

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 [url=jarekw.eu]Blog[/url], a później [url=tanczymy.com]Tańczymy[/url] ;)

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
[b]napisz do mnie:[/b] ola@mojmail.eu
[url=http://valhalla.org.pl]Hołmpejdż[/url] | [url=http://valhalla.org.pl/foto]Galerie[/url] | [url=http://valhalla.org.pl/tech]"Twórczość"[/url] || [url=http://img.munn.in]Free Image Hosting[/url]

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/

[quote=winnetou]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.[/quote]
albo po prostu

Kod:

echo "$@"

linux register user: 484281
"[i]It's great to be here. It's great to be anywhere[/i]"
[b]Keith Richards[/b]

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
[b]napisz do mnie:[/b] ola@mojmail.eu
[url=http://valhalla.org.pl]Hołmpejdż[/url] | [url=http://valhalla.org.pl/foto]Galerie[/url] | [url=http://valhalla.org.pl/tech]"Twórczość"[/url] || [url=http://img.munn.in]Free Image Hosting[/url]

Offline

 

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

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: Dodanie skryptu do autostartu /init.d/

[quote=winnetou]@thal - w sumie ;) najciemniej pod latarnią xD Nie wiem dlaczego ale na najprostsze rozwiązania wpadam na końcu albo wcale ;)[/quote]
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.

[quote=Kamil2685]np. to w wyniku wywołania skryptu w sposób: ./skrypt par1 par2
otrzymam coś takiego:
par1 par20[/quote]
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}

Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

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 ;)[/quote]
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
"[i]It's great to be here. It's great to be anywhere[/i]"
[b]Keith Richards[/b]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.019 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00015 SET CHARSET latin2
0.00010 SET NAMES latin2
0.00158 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.129.19.251' WHERE u.id=1
0.00630 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.129.19.251', 1714907308)
0.00119 SELECT * FROM punbb_online WHERE logged<1714907008
0.00137 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=19215 AND t.moved_to IS NULL
0.00015 SELECT search_for, replace_with FROM punbb_censoring
0.00277 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=19215 ORDER BY p.id LIMIT 0,25
0.00142 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=19215
Total query time: 0.01503 s