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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam.
Mam skrypt pythona, który ma startować zaraz po starcie systemu.
Skrypt znajduje się w:
/usr/local/program/skrypt.py
Próbowałem dodać go do autostartu w ten sposób:
ln -s /usr/local/program/skrypt.py /home/ja/.config/autostart
Niestety skrypt nie startuje wraz z uruchomieniem systemu.
Offline
Offline
A najprościej będzie dopisać go do /etc/rc.local
Offline
azhag napisał(-a):
A najprościej będzie dopisać go do /etc/rc.local
A mi to ostatnio nie działa... Czy wiadomo dlaczego?? Czy on 'wywołuje' rc.local z prawami root'a? Czyli czy mogę tam coś wsadzić co potrzebuje root'a??
EDIT:
Może coś jeszcze napisze ;p
pablo@lena:~$ 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. #echo 1 > /sys/class/backlight/intel_backlight/brightness #echo 0 > /proc/acpi/ibm/bluetooth exit 0
Oczywiście linie 'echo.*' (że tak bashowo napiszę) były odkomentowane...
Ostatnio edytowany przez P@blo (2011-12-08 19:27:43)
Offline
P@blo napisał(-a):
A mi to ostatnio nie działa... Czy wiadomo dlaczego?? Czy on 'wywołuje' rc.local z prawami root'a? Czyli czy mogę tam coś wsadzić co potrzebuje root'a??
Tak, rc.local jest wykonywany na prawach roota. Jak potrzebujesz na prawach użytkownika, to musisz użyć su (ja w ten sposób przy starcie systemu uruchamiam rtorrenta na screenie jako użytkownik).
Offline
P@blo napisał(-a):
azhag napisał(-a):
A najprościej będzie dopisać go do /etc/rc.local
A mi to ostatnio nie działa... Czy wiadomo dlaczego?
Może wyłączyłeś uruchamianie rc.local w skryptach startowych?
Offline
azhag napisał(-a):
P@blo napisał(-a):
azhag napisał(-a):
A najprościej będzie dopisać go do /etc/rc.local
A mi to ostatnio nie działa... Czy wiadomo dlaczego?
Może wyłączyłeś uruchamianie rc.local w skryptach startowych?
Gdzież to jest?
Offline
W sysv-rc-conf na przykład. Pamiętam, że coś o nim wspominałeś przy okazji innego wątku…
Offline
No tak... Jest tam ustawione 2,3,4,5 czyli tak jak powinno być :). Aktualnie jest tak:
pablo@lena:~$ 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. echo 1 > /sys/class/backlight/intel_backlight/brightness echo 0 > /proc/acpi/ibm/bluetooth exit 0
Przy starcie systemu wyświetla (*) się:
startpar: service(s) returned failure: rc.local ... failed!
Gdy miałem te dwie pozycje w moim skrypcie:
pablo@lena:~$ cat Desktop/mystartup #!/bin/bash ### BEGIN INIT INFO # Provides: mystartup # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: my script # Description: Enable service provided by daemon. ### END INIT INFO #update-rc.d mystartup defaults 100 echo -n "Starting MyStartup: " case "$1" in start) echo 0 > /sys/devices/platform/thinkpad_acpi/bluetooth_enable echo 1 > /sys/class/backlight/acpi_video0/brightness echo "$1" exit 1 ;; stop) echo 1 > /sys/devices/platform/thinkpad_acpi/bluetooth_enable echo 5 > /sys/class/backlight/acpi_video0/brightness echo "$1" exit 1 ;; *) echo "Usage: "$0" {start|stop}" esac exit 0
to (*) przy starcie systemu też się pojawiało... No ale działało, czyli wyłączało bluta i sciemniało. Teraz gdy siedzi to w rc.local nie robi tego... No i moje rc wywołuje się na samy końcu... Wiadomo co może być przyczyną?
Offline
To ma się wywoływać na końcu, czyli jest OK. Może te polecenia po prostu nie działają? Weź wpisz tam zamiast nich:
echo dupa > /tmp/test
I zobacz po restarcie systemu:
cat /tmp/test
Offline
Nie no, to działa! Ogólnie rc.local działa. :) Właśnie zrobiłem identyczny test wcześniej i okazało się, że to jest ok, ale problem jest taki, że te komendy nie działają... No, ale w tym moim skrypcie jak są to działają. Więc problem jest taki, że nie działają jak są w rc.local... Trochę namieszałem, ale mam nadzieje, że wiadomo o co chodzi :D
Ostatnio edytowany przez P@blo (2011-12-09 20:28:18)
Offline
W tym Twoim skrypcie są inne ścieżki niż te co dałeś w rc.local.
Offline
(...) o_0 ale wstyd...
Nie ma to jak świeże oko... ;p Dzięki :D
Offline
A więc dodałem do
/etc/rc.local
taki wpis
su pawel -c "python /home/pawel/script/script.py"
Niestety jest problem bo p wisaniu takowego polecenia w konsoli jest pytanie o hasło. Jak to obejść?
Offline
Hm? root (z którego rc.local jest wykonywany) powinien się przelogować bez hasła...
Offline
Spróbuj wpisać w local:
sudo -u pawel python /home/pawel/script/script.py
Pozdro
;-)
Offline
@UP
Szybszy fus :D
Spróbuj
sudo -u <user> <command>
Fervi
Ostatnio edytowany przez fervi (2011-12-13 22:15:20)
Offline
A bez "sudo" się nie da ?
OK, zainstalowałem sudo
Dodałem linijkę:
pawel localhost = /home/pawel/script/script.py
do
/etc/sudousers
i po wpisaniu w konsoli
sudo -u pawel python /home/pawel/script/script.py
mam komunikat:
pawel nie ma uprawnień do uruchamiania sudo na debian. Ten incydent zostanie zgłoszony.
Ostatnio edytowany przez paw4el (2011-12-13 22:54:54)
Offline
Wpis w /etc/sudoers zmień w taki sposób - de facto chodzi o sudo bez hasła i program, który wykonuje skrypt, bo to pythona wywołujesz z "parametrem" sudo:
pawel ALL= NOPASSWD: /usr/bin/python
W tym przypadku plik:
/home/pawel/script/script.py
musi "móc być wykonywanym" przez wszystkich (#):
chmod a+x /home/pawel/script/script.py
Daj znać, czy przypadkiem nie działa ;]
Ostatnio edytowany przez marcin'82 (2011-12-13 23:51:40)
Offline
paw4el: napisz dokładnie jakie polecenia wpisujesz i jaki wynik otrzymujesz. /etc/rc.local jest wykonywany na prawach superużytkownika i samo su nie ma prawa pytać o hasło. Natomiast może być tak, że skrypt który próbujesz uruchomić, pyta o jakieś hasło i Twoje pytanie dotyczy tego, jak z poziomu rc.local to hasło mu wprowadzić. Może być również tak, że ten skrypt wywołuje gdzieś os.system("sudo costam") (czy jak tam się takie rzeczy zapisuje w Pythonie) i to sudo pyta o hasło. Bez konkretnych wiadomości diagnostycznych (i prawdopodobnie treści skryptu, który wywołujesz) nasze próby pomocy Tobie będą przypominały błądzenie pijanych dzieci we mgle.
Offline
Z konsoli zwykłego użytkownika:
cd /home/pawel/script ./script.py
Nie mam żadnego pytania o hasło.
Nadal w konsoli zwykłego użytkownika:
su pawel -c "/home/pawel/script/script.py"
Pytanie o hasło.
Gdy z konsoli roota wykonuje polecenie
su pawel -c "/home/pawel/script/script.py"
to pytania o hasło nie ma.
PS. Dodam jeszcze że jest to skrypt gnome-shell-google-calendar.py
W pliku:
/etc/rc.local
mam taki wpis:
su -u pawel "/home/pawel/scripts/script.py" exit 0
Skrypt nie jest uruchomiony bądź uruchamia się z błędami.
Skrypt musi być uruchomiony z poziomu zwykłego usera.
Ostatnio edytowany przez paw4el (2011-12-14 00:47:25)
Offline
PS. Dodam jeszcze że jest to skrypt gnome-shell-google-calendar.py
Jesli to skrypt do Gnome - to czy przypadkiem w Gshell nie zachowało się takie magiczne miejsce:
System=>Preferencje=>Programy Startowe?
<OT>
Co Debian stał się taki skomplikowany ostatnio?
Bo w strasznym i przerażającym Gentoo mam taki folder:
ls -l /etc/local.d razem 20 -rwxr-xr-x. 1 root root 59 10-21 15:23 arpbrama.start -rwxr-xr-x. 1 root root 330 06-14 15:47 fbtheme.start -rwxr-xr-x. 1 root root 80 10-30 01:47 inne.start -rw-r--r--. 1 root root 387 10-19 17:56 README
I jak tam coś wrzucę i odpowiednio nazwę, to jeszcze się nie zdażyło, żeby nie działało..
</OT>
I jeszcze jedno:
Dlaczego tego niezwykle ważnego skryptu nie zapiszesz w zmiennej $PATCH $PATH - w /usr/local/bin jako skrypt, żeby był uruchamiany, jak każdy normalny program?
Pozdro
;-)
Ostatnio edytowany przez azhag (2011-12-14 08:41:56)
Offline
Jacekalex napisał(-a):
Jesli to skrypt do Gnome - to czy przypadkiem w Gshell nie zachowało się takie magiczne miejsce:
System=>Preferencje=>Programy Startowe?
Chyba nie, ale powinno dać się tam dobić via:
gnome-session-properties
Offline
Strony: 1