Skrypt do uruchomienia KDM (jeśli tak się nie dzieje)

debianlight_kdm

Wczoraj ponownie zainstalowałem mój świszczący oddech Debiana z moim niestandardowym repozytorium KDE 4.10 i muszę powiedzieć, że jeśli wcześniej działało dobrze, teraz działa znacznie lepiej.

Jedyny problem jaki miałem był z KDM, który najwyraźniej w ogóle nie instalował się dobrze, bo nie chciał uruchamiać się automatycznie, coś, co przykuwa moją uwagę bo zrobiłem tę samą instalację, z tymi samymi repozytoriami na innym PC i wszystko było idzie świetnie.

Szukając przyczyny problemu wykryłem, że plik nie został utworzony /etc/init.d/kdm który powinien mieć to w środku:

#! / bin / sh -e ### BEGIN INIT INFO # Zapewnia: kdm # Wymagany-Start: $ local_fs $ zdalny_fs # Wymagany-Stop: $ local_fs $ zdalny_fs # Powinien-Start: konsola-screen kbd acpid dbus hal krb5- kdc # Powinno zatrzymać: ekran konsoli kbd # Domyślnie-Start: 2 3 4 5 # Domyślnie-Stop: 0 1 6 # Krótki opis: Menedżer wyświetlania X dla KDE # Opis: KDM zarządza kolekcją X serwerów, które mogą znajdować się na hoście lokalnym lub zdalnych maszynach.
 ### END INIT INFO # /etc/init.d/kdm: uruchamianie lub zatrzymywanie menedżera wyświetlania X # Skrypt pierwotnie skradziony z pakietu xdm # # description: K Display Manager # # importuj funkcje inicjalizacyjne LSB.  / lib / lsb / init-functions # ustawianie ustawień regionalnych if [-r / etc / default / locale]; następnie.  / etc / default / locale export LANG LANGUAGE fi #, aby uruchomić kdm, nawet jeśli nie jest to domyślny menedżer wyświetlania, zmień # HEED_DEFAULT_DISPLAY_MANAGER na „false”.
 HEED_DEFAULT_DISPLAY_MANAGER = true DEFAULT_DISPLAY_MANAGER_FILE = / etc / X11 / default-display-manager PATH = / bin: / usr / bin: / sbin: / usr / sbin DAEMON = / usr / bin / kdm PIDFILE = / var / run / kdm.pid UPGRADEFILE = / var / run / kdm.upgrade setup_config () {# parametry do obsługi dostosowywania kdm KDMRC = / etc / kde4 / kdm / kdmrc BACKGROUNDRC = / etc / kde4 / kdm / backgroundrc # jeśli konfiguracja została zmieniona przez kdmtheme lub inne narzędzia , nie rób magii, jeśli grep -q "^ [[: space:]] * Theme = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; następnie KDMOVERRIDEDIR = / etc / default / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdmx / ariya us / share THEMX / share / apps / kdde4 $ DAEMON || zakończ 0 # odkomentuj, jeśli chcesz, aby automatyczne logowanie było zależne od poziomu działania #test "$ runlevel" || {runlevel = `runlevel`; runlevel = $ {runlevel # *}; } #test "$ runlevel" = 4 && ARG = -autolog || ARG = -noautolog # uncomment, jeśli chcesz mieć mnóstwo informacji debugowania w swoim syslog #ARG = "$ ARG -debug 255" # używamy alternatywnego głównego pliku konfiguracyjnego kdm ARG = "$ ARG -config $ KDMCFG" # generujemy kdm pliki konfiguracyjne genkdmconf --in $ KDMCFGDIR 1> / dev / null # nadpisujemy źródła.  run-parts sortuje listę w przewidywalnej kolejności, jeśli [-d "$ KDMOVERRIDEDIR"]; potem część w $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); do.  "$ part" gotowe, jeśli # zaktualizujemy pliki konfiguracyjne kdm (tylko wartości nadpisane) [-n "$ USEBACKGROUND"] && sed -i "s | ^ # \? UseBackground =. * | UseBackground = $ USEBACKGROUND |" $ KDMCFG [-n "$ BACKGROUNDCFG"] && sed -i "s | ^ # \? BackgroundCfg =. * | BackgroundCfg = $ BACKGROUNDCFG |" $ KDMCFG [-n "$ USETHEME"] && sed -i "s | ^ # \? UseTheme =. * | UseTheme = $ USETHEME |" $ KDMCFG [-n "$ TEMAT"] && [-e "$ TEMAT"] && sed -i "s | ^ # \? Motyw =. * | Motyw = $ TEMAT |" $ KDMCFG [-n "$ JĘZYK"] && sed -i "s | ^ # \? Język =. * | Język = $ JĘZYK |" $ KDMCFG if grep -q "^ [[: space:]] * Wallpaper = stripes.png" $ {BACKGROUNDRC}; następnie [-n "$ TAPETA"] && [-e "$ TAPETA"] && sed -i "s | ^ # \? Tapeta =. * | Tapeta =` readlink -f $ TAPETA` | " $ BACKGROUNDCFG fi # usetheme jest teraz włączone „domyślnie”, więc musimy mieć pewność, że motyw nie jest nieprawidłowy ...
 sed -i "s | @@@ ToBeReplacedByDesktopBase @@@ | $ DEFAULT_KDM_THEME |" $ {KDMCFG} # nadpisania autologin są przydatne w środowisku Debiana na żywo, jeśli [-n "$ AUTOLOGINUSER"]; następnie sed -i "s | ^ # \? AutoLoginEnable =. * | AutoLoginEnable = true |" $ KDMCFG sed -i "s | ^ # \? AutoLoginUser =. * | AutoLoginUser = $ AUTOLOGINUSER |" $ KDMCFG fi [-n "$ AUTOLOGINDELAY"] && sed -i "s | ^ # \? AutoLoginDelay =. * | AutoLoginDelay = $ AUTOLOGINDELAY |" $ KDMCFG [-n "$ AUTOLOGINAGAIN"] && sed -i "s | ^ # \? AutoLoginAgain =. * | AutoLoginAgain = $ AUTOLOGINAGAIN |" $ KDMCFG [-n "$ AUTOLOGINLOCKED"] && sed -i "s | ^ # \? AutoLoginLocked =. * | AutoLoginLocked = $ AUTOLOGINLOCKED |" $ KDMCFG fi return 0} # Jeśli zaktualizowaliśmy demona, nie możemy użyć argumentu --exec do # start-stop-daemon, ponieważ i-węzeł ulegnie zmianie. Ryzyko polega na tym, że # w sytuacji, gdy demon umarł, jego plik pid nie został wyczyszczony, a # inny proces działa teraz pod tym numerem, demon start-stop-daemon wyśle ​​# sygnały do ​​niewinnego procesu. Jednak wydaje się to przypadkiem narożnym.
 # C'est la vie!
 if [-e $ UPGRADEFILE]; then SSD_ARGS = "- pidfile $ PIDFILE --startas $ DAEMON" else SSD_ARGS = "- pidfile $ PIDFILE --exec $ DAEMON" fi still_running () {if expr "$ (cat / proc / $ DAEMONPID / cmdline 2> / dev / null) ":" $ DAEMON "> / dev / null 2> & 1; wtedy true else # jeśli demon nie usunie własnego pliku pid, rm -f $ PIDFILE $ UPGRADEFILE false fi; } case "$ 1" na początku) setup_config if [-e $ DEFAULT_DISPLAY_FILE_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_MANAGER_FILE)"! = "$ DAEMON"]; then log_action_msg "Nie uruchamiam K Display Manager (kdm); nie jest to domyślny menedżer wyświetlania."
 else log_daemon_msg "Uruchamianie Menedżera wyświetlania K" "kdm" if start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; następnie log_end_msg 0 else log_action_end_msg 1 "już działa" fi fi ;; restart) /etc/init.d/kdm stop if [-f $ PIDFILE]; wtedy jeśli nadal_pracuje; następnie wyjdź 1 fi /etc/init.d/kdm start ;; reload) log_action_begin_msg "Ponowne ładowanie konfiguracji K Display Manager ..."
 if start-stop-daemon --stop --signal 1 --quiet $ SSD_ARGS; następnie log_action_end_msg 0 else log_action_end_msg 1 "Kdm nie działa" fi ;; force-reload) /etc/init.d/kdm reload ;; stop) log_action_begin_msg "Zatrzymywanie menedżera wyświetlania K: kdm" if [!  -f $ PIDFILE]; następnie log_action_end_msg 0 "nie działa (nie znaleziono $ PIDFILE)" exit 0 else DAEMONPID = $ (cat $ PIDFILE | tr -d '[: blank:]') KILLCOUNT = 1 if [!  -e $ UPGRADEFILE]; wtedy jeśli start-stop-daemon --stop --quiet $ SSD_ARGS; następnie # daj programowi obsługi sygnału kdm chwilę na złapanie oddechu. Sen 1 else log_action_cont_msg "nie działa" fi fi while [$ KILLCOUNT -le 5]; zrób, jeśli still_running; następnie zabij $ DAEMONPID else break fi sleep 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) wykonane if still_running; następnie log_action_cont_msg "nie odpowiada na sygnał TERM (pid $ DAEMONPID)" else rm -f $ UPGRADEFILE fi log_action_end_msg 0 ;; status) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && exit 0 || wyjść $?
To jest to, co wspomniany plik ma na innym komputerze, ale nie widziałem go zeszłej nocy, pokazuję ci moją inną alternatywę

Rozwiązaniem, które wtedy znalazłem, było stworzenie własnego skryptu startowego, który jest używany dla KDM lub dowolnej innej aplikacji, którą chcemy uruchomić, który zawiera:

#! / bin / sh ŚCIEŻKA = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-functions case "$ 1" na początku | "") / usr / bin / kdm ;; stop) # No-op ;; *) echo "Użycie: kdm [start | stop | restart]"> & 2 exit 3 ;; to C

Teraz, aby KDM uruchomił się automatycznie, trzeba aktywować wspomniany skrypt, więc używam RCKonf dla tego. I gotowy. Jednak polecam użycie oryginału 😛


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Vicky powiedział

    Używam alternatywy dla kdm o nazwie sddm.

    1.    pełen życia powiedział

      Hmm. Nie znałem jej… Idę patrzeć.

    2.    pełen życia powiedział

      Bzdury !!! Potrzebuje GLIBC 2.14, aw Debianie mam 2.13 ¬_¬

  2.   st0rmt4il powiedział

    Ummm, wydaje się dobrze: D .. elav, aby uwzględnić inne środowiska i właściwie wykorzystać wspomniany skrypt, musimy tylko zmienić nazwę menedżera okien, którego chcemy używać, prawda?

    Pozdrowienia!

  3.   erdozain9 powiedział

    Hey.
    Chociaż nie ma to nic wspólnego z samym artykułem, chciałem Cię zapytać: czy możesz zrobić „co zrobić po zainstalowaniu Wheezy”?
    Ponieważ napotkałem problemy podczas instalacji. Na przykład:
    1-Chociaż sama instalacja wymaga sieci Wi-Fi, po zakończeniu instalacji nie ma połączenia Wi-Fi ani nawet programu do zarządzania sieciami. (Podłączyłem go na końcu ręcznie z bezpośredniej konsoli ... ale znalazłem każdego, kto łączy się z Wi-Fi podczas instalacji, a potem nawet nie instaluje menedżera sieci ... lub coś ...)
    2 - chociaż instalacja odbywa się w wybranym przez Ciebie języku, to czy system jest instalowany w języku angielskim? Nie mam pojęcia, jak to poprawić ...

    I cóż, niente piu ... jeśli możesz to rozszerzyć swoim doświadczeniem i napisać post, byłby bardzo przydatny dla mnie hehe ... (wyobrażam sobie też innych).
    Pozdrowienia!

    1.    pełen życia powiedział

      Hmm, jakiego środowiska graficznego używasz? Chyba KDE ..

      1.    erdozain9 powiedział

        Zgadujesz bardzo dobrze. Tak, używam KDE, ale tak naprawdę wpadam w świat Debiana ... jakie środowisko polecacie?
        Zanim byłem myszką w Crunchbang ... i przyciągnęło mnie to, jak stabilne było, założyłem, że ponieważ jest oparty na Debianie i dlatego rzuciłem się na debian ... Wybrałem KDE do wyboru ... które poleciłbyś?
        A to, o czym wspomniałem, dzieje się tylko w KDE?

        Saludos y gracias

  4.   Jairo powiedział

    Cześć,
    Przeczytałem twój artykuł i chciałbym skomentować, że mam problem w Debianie wheezy z KDE i nie wiem, czy to to samo. Szukałem jak szalony rozwiązania i pytałem na forach, ale nikt nie może mi powiedzieć dlaczego. błąd polega na tym, że po przekazaniu Gruba czasami debian się nie uruchamia, ponieważ pozostaje na czarnym ekranie po pojawieniu się tej linii tekstu (jest to trzecia):

    Oczekiwanie na pełne zapełnienie / dev

    Mój komputer to notebook ASUS K93SV
    Intel Core i7 2670QM
    błąd nie zawsze występuje. Kiedy to się stanie, muszę na siłę zamknąć i ponownie uruchomić.

    1.    pełen życia powiedział

      Szybkie wyszukiwanie w Google zwróciło mi to:

      http://www.esdebian.org/foro/28882/waiting-for-dev-to-be-fully-populated

      Powiedz mi, czy to cię rozwiązuje.

      1.    Jairo powiedział

        Przeczytałem cały post, ale nie odważę się tego zrobić, bo sprawdziłem swoją listę menu.list i jest zupełnie inna od tego, co pojawia się w tej rozmowie.

  5.   cooper15 powiedział

    Ten Elav zawsze publikuje ciekawe patyki, mam ten problem i dlatego używam LightDM, który swoją drogą działa całkiem nieźle, ale zobaczmy czy ten skrypt (dziwny KDM) u mnie działa, doceniam wkład 😉