Uruchamianie skryptu

Ogólne pytania dotyczące systemu
Awatar użytkownika
nighttrain
Beginner
Posty: 123
Rejestracja: 07 marca 2009, 19:47
Lokalizacja: 127.0.0.1

Uruchamianie skryptu

Post autor: nighttrain »

czesc wszystkim,
mam takie pytanko. probowalem dodac skrypt, ktory uruchamia xrandr -s 1920x1080 z pliku rc.local. Sam skrypt dziala poprawnie. Po dodaniu wywolaniu skryptu do rc.local i restarcie systemu nic sie nie dzieje. Wyczytwalem, ze rc.local jest wywolywany jako ostatni, ale i tu nie ejstem pewien przed zalogowaniem do systemu wiec domniemam, ze dlatego xrandr nie zadziala czy mam racje?

Drugie pytanie:
Stworzylem swoj wlasny plik i dodalem zrobilem update rc - to samo po restarcie nic sie nie dzialo. Przetestowalem start mojego rc'ka sudo service MyService start, ale wywalil mi blad na konsoli, ze Can't open display. Dlaczego otrzymuje taki komunikat i kiedy tak naprawde uruchamia sie moj rc'k od momentu restartu systemu?

Trzecie pytanie:
Po dodaniu xranda do pliku .profiles smiga - wyczytalem ze ten plik jest wywolywany w momencie zalogowania usera do systemu i pewnie dlatego ruszylo - moje pytanie czy tam wlasnie powinienem dodawac skrypty ktore chce aby zadzialaly po zalogowaniu usera? Czy jest to dobre miejsce.

Czwarte pytanie:
Dla jakich skryptow powinienem uzywac pliku bash profile/bash rc

Piate pytanie:
Czy rc.local powinienem uzywac dla np serwisow (bo wywolywany jest przed logowaniem? Dla jakich rzeczy jeszcze.

pozdrawiam
Awatar użytkownika
marcin1982
Moderator
Posty: 1732
Rejestracja: 05 maja 2011, 12:59
Lokalizacja: Zagłębie Dąbrowskie

Post autor: marcin1982 »

Jak chcesz uruchomić skrypt przez /etc/rc.local to w treści skryptu na początku dodaj taką linię:

Kod: Zaznacz cały

DISPLAY=:0.0
To jest pierwsza możliwość ... kolejne możliwości są takie:
1. W katalogu ~/.config/autostart utworzyć plik nazwa.desktop, a w pliku w polu Exec podać ścieżkę do wykonywalnego skryptu:

Kod: Zaznacz cały

Exec=/ścieżk/nazwa.sh
2. Utworzyć plik:

Kod: Zaznacz cały

~/.xprofile
i dodać w nim:

Kod: Zaznacz cały

/ścieżka/nazwa &
Awatar użytkownika
nighttrain
Beginner
Posty: 123
Rejestracja: 07 marca 2009, 19:47
Lokalizacja: 127.0.0.1

Post autor: nighttrain »

ale dla obojetnie jakiego skryptu powinienem dodawac linie DISPLAY=:0.0 na poczatku w rc.local ? rc.local startuje jeszcze przed zalogowaniem usera do gdm to xrandr i tak przeciez sie nie wykona, tzn wykona, ale w tym przypadku bez efektu bo jeszcze nie bede zalogowany... nie?

Dlaczego ~/.xprofile a nie ~/.profile - jaka jest roznica skoro ten drugi dziala sprawdzilem?
Awatar użytkownika
marcin1982
Moderator
Posty: 1732
Rejestracja: 05 maja 2011, 12:59
Lokalizacja: Zagłębie Dąbrowskie

Post autor: marcin1982 »

Nie, tylko dlatego skryptu, który uruchamia program wymagający X serwera.

Daj tam gdzie działa i po sprawie.

Xprofile:
https://wiki.archlinux.org/index.php/xprofile .

Więcej:
https://wiki.archlinux.org/index.php/xrandr .
Awatar użytkownika
nighttrain
Beginner
Posty: 123
Rejestracja: 07 marca 2009, 19:47
Lokalizacja: 127.0.0.1

Post autor: nighttrain »

1. ale dalej nie rozumiem, skoro nawet dam display w rc.local - to przeciez ten plik zostaje wywolany przed logowaniem...
dodalem na koncu pliku :
DISPLAY=:0.0 xrandr -s 1920x1080 i nie zadzialalo po restarcie.

2. z tego co wyczytalem na wiki xprofiles to jakby to samo co profiles, po co wiec dwa pliki? //ja uzywam profiles i dziala
Awatar użytkownika
marcin1982
Moderator
Posty: 1732
Rejestracja: 05 maja 2011, 12:59
Lokalizacja: Zagłębie Dąbrowskie

Post autor: marcin1982 »

No to jest po prostu kwestia nomenklatury, żeby syfu w plikach nie robić - rodzielenie rzeczy wymagających serwera X i tych, kŧóre go nie wymagają. Ty rób jak uważasz.

Moim zdaniem najrozsądniej byłoby to umieścić przez plik nazwa.desktop w katalogu ~/.config/autostart
Awatar użytkownika
nighttrain
Beginner
Posty: 123
Rejestracja: 07 marca 2009, 19:47
Lokalizacja: 127.0.0.1

Post autor: nighttrain »

czyli w moim przypadku xrandr nie ma prawa sie wykonac po dodaniu go do rc.local, bo wykona sie przed zalogowaniem usera tak?
Awatar użytkownika
Yampress
Administrator
Posty: 6416
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

nighttrain pisze:czyli w moim przypadku xrandr nie ma prawa sie wykonac po dodaniu go do rc.local, bo wykona sie przed zalogowaniem usera tak?

tak
Awatar użytkownika
nighttrain
Beginner
Posty: 123
Rejestracja: 07 marca 2009, 19:47
Lokalizacja: 127.0.0.1

Post autor: nighttrain »

rc.local jest raczej do uslug. Yampress myslisz, ze .profiles jest do tego odpowiedni - wiem, ze dziala bo dziala, ale czy ten plik jest ok do tego typu rzeczy jak odpalenie xrandr'a? Zastanawia mnie jeszcxze fakt, gdyz przed rdc update dodalem moj skrypt wlasnie ten z xrandrem, ale tez sie nie wykonuje, czy r0,1... tez wykonuja sie przed zalogowaniem i co wiecej przed rc.local? Wtedy tlumaczyloby to niewylonanie.
Awatar użytkownika
Yampress
Administrator
Posty: 6416
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

ja to bym spróbował wrzucić do autostartu środowiska graficznego
[yampress@debian ~]$ 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.


exit 0
[yampress@debian ~]$

ODPOWIEDZ