Strona 1 z 1

dodanie polecenia do autostartu nie działa

: 09 marca 2011, 10:21
autor: marcinpruciak
Mam problem w dodaniu jednego polecenia do autostartu, które chciałbym aby było wykonywane zawsze gdy komputer jest włączony.
Dawniej wystarczyło je wkleić do /etc/rc.local, ostatnio widocznie coś się zmieniło, bo skrypt nie uruchamia się. Próbowałem dodać ten skrypt do /etc/init.d/ wg różnych poradników w sieci, jednak żaden z nich nie był poprawny i skrypt i tak nie uruchamia się.
Proszę o pomoc, lub działający poprawnie poradnik krok po kroku.
Dziękuję z góry.

: 09 marca 2011, 10:51
autor: lun
Jak dla mnie nic się nie zmieniło. Przed momentem sprawdziłem i skrypty z rc.local wykonują się po starcie systemu. Próbowałeś wykonać skrypt "z ręki"?

: 09 marca 2011, 10:53
autor: marcinpruciak
Skrypt z ręki działa nawet w tej chwili. Nie uruchamia się tylko po resecie.
Jesteś pewny że rc.local nadal działa? Mam debiana 6. Szukając poradników gdzieś przeczytałem że Debian już z tego pliku nie korzysta, chyba że gdzies się to włącza.

: 09 marca 2011, 11:03
autor: lun
Tak, przed chwilą sprawdzałem na wirtualnej maszynie z Debianem 6. A spytam jeszcze w którym pliku rc.local dodałeś skrypt? /etc/rc.local czy /etc/init.d/rc.local?

: 09 marca 2011, 11:04
autor: marcinpruciak
/etc/rc.local

: 09 marca 2011, 11:13
autor: lun
No to naprawdę nie wiem czemu może ci nie działać. Wklejasz tam cały skrypt, czy tylko wywołanie z innego pliku .sh?

Kod: Zaznacz cały

cat /etc/rc.local
...
touch /tmp/datefile
echo `date` > /tmp/datefile

Kod: Zaznacz cały

cat /tmp/datefile
TUE FEB 22 17:59:52 CET 2011
Datą się nie sugeruj bo to wirtualna maszyna.

Edycja:
Spróbuj zrobić jeszcze

Kod: Zaznacz cały

/bin/bash /etc/rc.local

: 11 marca 2011, 11:48
autor: marcinpruciak
Wywołuje inny plik bo mam tam pętle.
Wygląda tak:

Kod: Zaznacz cały

vz4407:~# cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

        /etc/init.d/test &

#mkdir /tmp/eaccelerator
#chmod 777 /tmp/eaccelerator
#/etc/init.d/httpd restart


exit 0
Dodane:
Jakieś pomysły? Próbowałem też, skopiować skrypt do /etc/init.d

Kod: Zaznacz cały

chmod +x

Kod: Zaznacz cały

update-rc.d test defaults
A i tak nie uruchamia się.

: 11 marca 2011, 11:54
autor: lun
A zrobiłeś?
Edycja:
Spróbuj zrobić jeszcze
Kod:

Kod: Zaznacz cały

/bin/bash /etc/rc.local
W innym temacie poruszono jeszcze taki wątek że skrypty w rc.local mogą się nie uruchomić, jeśli korzystają z X'ów (Gnome, KDE, itp.).
a co robi u ciebie ten skrypt?

: 11 marca 2011, 11:56
autor: marcinpruciak
Gdy uruchamiam /etc/rc.local ręcznie, skrypt działa, ale

Kod: Zaznacz cały

 top
pokazuje, że rc.local zużywa 50% procesora.
Skrypt pobiera curlem inną stronę w pętli cosekundowej. X-sów nie ma na serwerze.

Udało mi się rozwiązać zagadkę. Problemem była niepełna ścieżka do curla.