lelad Napisano Kwiecień 10, 2006 Zgłoszenie Share Napisano Kwiecień 10, 2006 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 More sharing options...
@WalDo Napisano Kwiecień 10, 2006 Zgłoszenie Share Napisano Kwiecień 10, 2006 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 More sharing options...
lelad Napisano Kwiecień 11, 2006 Autor Zgłoszenie Share Napisano Kwiecień 11, 2006 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 More sharing options...
@WalDo Napisano Kwiecień 11, 2006 Zgłoszenie Share Napisano Kwiecień 11, 2006 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 More sharing options...
Rekomendowane odpowiedzi
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ę