Skocz do zawartości

Uruchamianie Usług Przy Starcie Systemu.


lelad

Rekomendowane odpowiedzi

Witam wszystkich.

Dotyczy Fedora Core 5.

Problem jest następujący:

przy starcie systemu uruchamiam usługę, która tworzy urządzenie w katalogu /dev

np. lirc (lircd,lircmd który tworzy /dev/lircm),

następnie uruchamiana jest inna usługa korzystająca z urządzenia utworzonego przez poprzednią usługę np. gpm w zmodyfikowanej formie (wykonująca polecenie /usr/sbin/gpm -m /dev/input/mice -t ps2 -R -M -m /dev/lircm -t ms3) korzystająca z /dev/lircm,

i wtedy występuje problem - druga usługa nie chce się automatycznie uruchomić z powodu braku możliwości otwarcia wcześniej utworzonego urządzenia np. gpm zgłasza komunikat "Could not open /dev/lircm".

Dzieje się tak niezależnie czy druga usługa jest wywoływana z katalogu /etc/init.d czy z pliku rc.local.

Natomiast nie ma żadnych problemów z uruchomieniem tej samej usługi wywołując ją ręcznie po zalogowaniu jako root np. /etc/init.d/gpm start,

wtedy urządzenie do którego się odwołuje jest otwierane bez żadnych problemów np. /dev/lircm.

Moze ktoś ma jakiś pomysł co jest powodem takiego zachowania.

Pozdrawiam

Lelad.

 

Odnośnik do komentarza
Udostępnij na innych stronach

A jesteś pewien, że najpierw wołana jest usługa tworząca /dev/lircm a dopiero potem ta z "gpm ...."?

Jeśli obie masz w /etc/init.d to zrób w odpowiednich katalogach (pewnie chodzi /etc/rc5.d) właściwe dowiązania z kolejnymi numerami, czyli np. dla startu /etc/rc5.d/S40lircmd i /etc/rc5.d/S41gpm. Zamykanie zapewne w odwrotnej kolejności, czyli K40gpm i K41lircmd.

Trochę więcej na temat tych liter S, K i numerków pisałem --> TUTAJ <--

 

[Edit]Można w sumie prościej - wpisz oba wywołania do rc.local w odpowiedniej kolejności.

 

Pozdr,

W.

Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuje za odpowiedź ale usługi uruchamiane są we właściwej kolejności i chyba nie w tym jest problem. Np Lirc - S29lirc a gpm - S85gpm. A gdy próbuję wywołać gpm z rc.local to ma S99local (to wywołanie uruchamia rc.local) i efekt jest ten sam : "Could not open /dev/lircm". A przy wywołaniu ręcznym /etc/init.d/gpm start nie ma żadnych problemów. Tylko załamać ręce bo nie mam już żadnych pomysłów.

Pozdrawiam

Lelad.

Odnośnik do komentarza
Udostępnij na innych stronach

A jakby tak dodać do rc.local wywołanie skryptu, a w skrypcie napisać pętelkę, która sprawdza czy jest już gotowe urządzenie /dev/lircm?

Bo z tego co piszesz, to /dev/lircm powstaje, ale później niż się spodziewasz. Może to musi chwilę potrwać, bo system ma ważniejsze zadania do wykonania.

Sprawdź syslog - powinny być jakieś zapisy dot. utworzenia /dev/lircm - i może to podsunie Ci jakieś pomysły. Ale myślę, że to sprawdzanie (oczywiście w tle z jakimś "sleep 1") czy powstało już urządzenie jest chyba najprostsze. Chyba, że programujesz w C pod uniksem, to wtedy na pewno można to jakoś bardziej elegancko załatwić.

 

Pozdr,

W.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...