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

Użytkownik


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







Kapelusznik








Offline






Admin łajza







A najprościej będzie dopisać go do /etc/rc.local
Offline



Nadworny matematyk




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




Użyszkodnik
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






Admin łajza







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



Nadworny matematyk




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







Kapelusznik








W sysv-rc-conf na przykład. Pamiętam, że coś o nim wspominałeś przy okazji innego wątku…
Offline



Nadworny matematyk




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 0to (*) 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







Kapelusznik








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



Nadworny matematyk




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







Kapelusznik








W tym Twoim skrypcie są inne ścieżki niż te co dałeś w rc.local.
Offline



Nadworny matematyk




(...) o_0 ale wstyd...
Nie ma to jak świeże oko... ;p Dzięki :D
Offline

Użytkownik


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






Admin łajza







Hm? root (z którego rc.local jest wykonywany) powinien się przelogować bez hasła...
Offline







Podobno człowiek...;)








Spróbuj wpisać w local:
sudo -u pawel python /home/pawel/script/script.py
Pozdro
;-)
Offline




Użytkownik





@UP
Szybszy fus :D
Spróbuj
sudo -u <user> <command>
Fervi
Ostatnio edytowany przez fervi (2011-12-13 22:15:20)
Offline

Użytkownik


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


Użytkownik



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




Użyszkodnik
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

Użytkownik


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







Podobno człowiek...;)








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







Kapelusznik








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