Скрипт для запуску KDM (у випадку, якщо цього не відбувається)

debianlight_kdm

Вчора я перевстановив свій Дебіан Візі з моїм користувацьким сховищем ДЕ 4.10 і я повинен сказати, що якщо раніше це працювало добре, то тепер це набагато краще.

Єдина проблема була у мене з KDM, який, мабуть, погано встановлювався взагалі, тому що він не хотів запускатись автоматично, що привертає мою увагу, тому що я зробив те саме встановлення, з однаковими сховищами на іншому ПК, і все йшло чудово .

Шукаючи причину проблеми, я виявив, що файл не створений /etc/init.d/kdm який повинен мати це всередині:

#! / bin / sh -e ### НАЧАТИ ІНФО kdc # Should-Stop: console-screen kbd # Start-Start: 5 2 3 4 # Default-Stop: 5 0 1 # Короткий опис: X display manager for KDE # Опис: KDM управляє колекцією X серверів, які можуть бути на локальному хості або віддалених машинах.
 ### END INIT INFO # /etc/init.d/kdm: запуск або зупинка диспетчера дисплеїв X # Сценарій, спочатку викрадений з пакета xdm # # опис: K Display Manager # #, імпортує функції ініціювання LSB.  / lib / lsb / init-functions # встановити локаль, якщо [-r / etc / default / locale]; тоді.  / etc / default / locale export LANG LANGUAGE fi #, щоб запустити kdm, навіть якщо він не є менеджером відображення за замовчуванням, змініть # HEED_DEFAULT_DISPLAY_MANAGER на "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. UPGRADEFILE = / var / run / kdm.upgrade setup_config () {# параметрів, що підтримують налаштування kdm KDMRC = / etc / kde4 / kdm / kdmrc BACKGROUNDRC = / etc / kde4 / kdm / backgroundrc #, якщо конфігурацію змінює kdmtheme або інші інструменти , не роби магіки, якщо grep -q "^ [[: space:]] * Theme = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; тоді KDMOVERRIDEDIR = / і т.д. / за замовчуванням / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdmx / kd share / a / kd share / a / kd share / a k $ DAEMON || вихід 4 # uncomment, якщо ви хочете, щоб автовхід був залежним від рівня запуску #test "$ runlevel" || {runlevel = `рівень запуску`; рівень запуску = $ {рівень рівня # *}; } #test "$ runlevel" = 0 && ARG = -autolog || ARG = -noautolog #comment, якщо вам потрібна маса інформації про налагодження у вашому системному журналі #ARG = "$ ARG -debug 4" # ми використовуємо альтернативний файл конфігурації kdm ARG = "$ ARG -config $ KDMCFG" # ми генеруємо kdm файли конфігурації genkdmconf --in $ KDMCFGDIR 255> / dev / null # ми замінюємо джерелом.  run-parts сортує список у передбачуваному порядку, якщо [-d "$ KDMOVERRIDEDIR"]; потім для частини в $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c.  "$ part" зроблено fi # ми оновлюємо файли конфігурації kdm (лише перевизначені значення) [-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 "$ THEME"] && [-e "$ THEME"] && sed -i "s | ^ # \? Theme =. * | Theme = $ THEME |" $ KDMCFG [-n "$ LANGUAGE"] && sed -i "s | ^ # \? Language =. * | Мова = $ LANGUAGE |" $ KDMCFG, якщо grep -q "^ [[: пробіл:]] * Шпалери = stripes.png" $ {BACKGROUNDRC}; тоді [-n "$ ШПАЛЕРА]] && [-e" $ ШПАЛЕРА]] && sed -i "s | ^ # \? Шпалери =. * | Шпалери =` readlink -f $ ОБОЙ` | " $ BACKGROUNDCFG fi # usetheme тепер увімкнено "за замовчуванням", тому нам потрібно бути впевненим, що тема не є недійсною ...
 sed -i "s | @@@ ToBeReplacedByDesktopBase @@@ | $ DEFAULT_KDM_THEME |" $ {KDMCFG} # заміни автологіну корисні для реального середовища debian, якщо [-n "$ AUTOLOGINUSER"]; потім 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} # Якщо ми оновили демон, ми не можемо використовувати аргумент --exec для # start-stop-daemon, оскільки inode змінився. Ризик тут полягає в тому, що # в ситуації, коли демон загинув, його pid-файл не був очищений, і # якийсь інший процес зараз працює під цим pid, start-stop-daemon надішле # сигнали невинному процесу. Однак це здається наріжним випадком.
 # Це життя!
 якщо [-e $ UPGRADEFILE]; тоді 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; тоді true інакше # якщо демон не видаляє власний файл pid, ми будемо rm -f $ PIDFILE $ UPGRADEFILE false fi; } випадок "$ 1" на початку) setup_config if [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_MANAGER_FILE)"] = = $ DAEMON тоді log_action_msg "Не запускається K Display Manager (kdm); це не менеджер відображення за замовчуванням."
 ще log_daemon_msg "Запуск K Display Manager" "kdm", якщо start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; тоді log_end_msg 0 ще log_action_end_msg 1 "вже запущений" fi fi ;; перезапустити) /etc/init.d/kdm зупинити, якщо [-f $ PIDFILE]; тоді якщо still_running; потім вийти 1 fi fi /etc/init.d/kdm start ;; reload) log_action_begin_msg "Перезавантаження конфігурації K Display Manager ..."
 якщо start-stop-daemon --stop --signal 1 --quiet $ SSD_ARGS; тоді log_action_end_msg 0 ще log_action_end_msg 1 "kdm не працює" fi ;; примусове перезавантаження) /etc/init.d/kdm reload ;; зупинка) log_action_begin_msg "Зупинка K Display Manager: kdm", якщо [!  -f $ PIDFILE]; тоді log_action_end_msg 0 "не працює ($ PIDFILE не знайдено)" вихід 0 else DAEMONPID = $ (cat $ PIDFILE | tr -d '[: blank:]') KILLCOUNT = 1 if [!  -e $ UPGRADEFILE]; тоді якщо start-stop-daemon --stop --quiet $ SSD_ARGS; тоді # дайте секунду обробнику сигналу kdm, щоб перевести дух 1 else log_action_cont_msg "не працює" fi fi, поки [$ KILLCOUNT -le 5]; робити якщо still_running; потім вбити $ DAEMONPID інакше перервати fi sleep 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) зроблено, якщо still_running; тоді log_action_cont_msg "не відповідає на сигнал TERM (pid $ DAEMONPID)" ще rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; статус) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && вихід 0 || вихід $?
Це те, що згаданий файл є на іншому ПК, але я не бачив його вчора ввечері, я показую вам свою іншу альтернативу

Рішенням, яке я тоді знайшов, було створити власний сценарій запуску, який використовується для KDM або будь-якої іншої програми, яку ми хочемо запустити, яка містить це:

#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-functions case "$ 1" in start | "") / usr / bin / kdm ;; зупинка) # No-op ;; *) echo "Використання: kdm [старт | зупинка | перезапуск]"> & 2 вихід 3 ;; що С

Тепер, щоб KDM запускався автоматично, необхідно активувати вказаний сценарій, тому я використовую RCConf для нього. І готовий. Однак я рекомендую використовувати оригінал 😛


11 коментарі, залиште свій

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Вікі - сказав він

    Я використовую альтернативу kdm, яка називається sddm.

    1.    елав - сказав він

      Хм Я її не знав .. Іду шукати.

    2.    елав - сказав він

      Фігня !!! Йому потрібен GLIBC 2.14, а в Debian у мене 2.13 ¬_¬

  2.   st0rmt4il - сказав він

    Мда, здається непоганим: D .. elav, щоб включити інші середовища та допустимо використовувати згаданий сценарій, нам просто потрібно змінити ім'я менеджера вікон, який ми хочемо використовувати, чи не так?

    Привіт!

  3.   ердосаїн9 - сказав він

    Здравствуйте.
    Хоча це не має нічого спільного з самою статтею, я хотів запитати вас: чи можете ви зробити "що робити після установки Wheezy"?
    Тому що я зіткнувся з деякими проблемами при його встановленні. Наприклад:
    1-Хоча для встановлення самої мережі потрібна мережа Wi-Fi, але після завершення встановлення немає з’єднання Wi-Fi і навіть програми для управління мережами. (Я підключив його наприкінці вручну з прямої консолі ... але мені здалося, що хтось підключається до wifi, поки він встановлений, а потім навіть не встановлює мережевий менеджер ... або щось інше ...)
    2 - хоча встановлення відбувається вибраною вами мовою, тоді система встановлюється англійською? Не знаю, як це виправити ...

    І добре, niente piu ... якщо ви можете розширити це своїм досвідом і опублікувати допис, це було б для мене дуже корисно, хе-хе ... (я теж уявляю інших).
    Привіт!

    1.    елав - сказав він

      Хм, яке робоче середовище ви використовуєте? Я думаю, KDE ..

      1.    ердосаїн9 - сказав він

        Ви здогадуєтесь дуже добре. Так, я використовую KDE, але насправді я потрапляю у світ Debian ... яке середовище ви рекомендуєте?
        До того, як я деякий час був у Crunchbang ... і мене привабило, наскільки він стабільний, я припускав, що, оскільки він базується на Debian, і тому я кинувся на debian ... Я вибрав KDE, щоб вибрати ... який із них ви порекомендуєте?
        І те, що я згадую, відбувається лише в KDE?

        Saludos у Gracias

  4.   Хайро - сказав він

    Привіт
    Я прочитав вашу статтю і хочу прокоментувати, що у мене проблема в Debian хрипить із KDE, і я не знаю, чи однакова. Я як божевільний шукав рішення і запитував на форумах, але ніхто не може сказати мені, чому. помилка полягає в тому, що після передачі Grub іноді debian не запускається, оскільки залишається на чорному екрані після появи цього рядка тексту (це третій):

    Чекає, поки / dev буде повністю заселено

    Мій комп’ютер - ноутбук ASUS K93SV
    Intel Core i7 2670QM
    помилка трапляється не завжди. Коли це трапляється, мені доводиться примусово вимикати і перезапускати.

    1.    елав - сказав він

      Швидкий пошук у Google повернув мені це:

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

      Скажіть, чи це вирішує вас.

      1.    Хайро - сказав він

        Я прочитав цілу публікацію, але не наважуюсь це зробити, бо перевірив свій список menu.list, і вона абсолютно відрізняється від того, що з’являється в цій розмові.

  5.   cooper15 - сказав він

    Цей Елав завжди публікує цікаві палички, у мене така проблема, і тому я використовую LightDM, який, до речі, працює досить добре, але давайте подивимось, чи працює цей сценарій (дивний KDM) для мене, дякую за внесок