Strona 1 z 2

Uruchamianie skryptu

: 28 lutego 2015, 21:28
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

: 01 marca 2015, 08:09
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 &

: 01 marca 2015, 09:07
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?

: 01 marca 2015, 11:01
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 .

: 01 marca 2015, 12:09
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

: 01 marca 2015, 15:39
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

: 01 marca 2015, 17:42
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?

: 01 marca 2015, 19:33
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

: 01 marca 2015, 21:14
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.

: 01 marca 2015, 21:42
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 ~]$