Скрипт для запуска KDM (если его нет)

debianlight_kdm

Вчера я переустановил свой Дебиан Уизи с моим настраиваемым репозиторием KDE 4.10 и я должен сказать, что если раньше он работал хорошо, то теперь он работает намного лучше.

Единственная проблема, с которой я столкнулся, была с KDM, который, по-видимому, вообще не устанавливался, потому что он не хотел запускаться автоматически, что привлекает мое внимание, потому что я сделал ту же установку с теми же репозиториями на другом ПК, и все шло отлично .

В поисках причины проблемы я обнаружил, что файл не был создан /etc/init.d/kdm внутри которого должно быть это:

#! / bin / sh -e ### BEGIN INIT INFO # Предоставляет: kdm # Обязательный-Start: $ local_fs $ remote_fs # Обязательный-Stop: $ local_fs $ remote_fs # Должен-Start: экран консоли kbd acpid dbus hal krb5- kdc # Should-Stop: console-screen kbd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Краткое описание: Диспетчер отображения X для 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 = / etc / default / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdmx / tes / темы / приложения / kdmx / test / apps / kdmx / apps / themes kdde4 / themes $ DAEMON || exit 0 # раскомментируйте, если вы хотите, чтобы автоматический вход в систему зависел от уровня выполнения #test "$ runlevel" || {runlevel = `runlevel`; runlevel = $ {runlevel # *}; } #test "$ runlevel" = 4 && ARG = -autolog || ARG = -noautolog # раскомментируйте, если вам нужны тонны отладочной информации в системном журнале #ARG = "$ ARG -debug 255" # мы используем альтернативный главный файл конфигурации kdm ARG = "$ ARG -config $ KDMCFG" # мы генерируем kdm файлы конфигурации genkdmconf --in $ KDMCFGDIR 1> / dev / null # мы переопределяем исходный код.  run-parts сортирует список в предсказуемом порядке if [-d "$ KDMOVERRIDEDIR"]; затем для части в $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c.  "$ part" done 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 = $ LANGUAGE |" $ KDMCFG if grep -q "^ [[: space:]] * Wallpaper = stripes.png" $ {BACKGROUNDRC}; затем [-n "$ WALLPAPER"] && [-e "$ WALLPAPER"] && sed -i "s | ^ # \? Wallpaper =. * | Wallpaper =` readlink -f $ WALLPAPER` | " $ BACKGROUNDCFG fi # usetheme теперь включен "по умолчанию", поэтому нам нужно убедиться, что Тема не недействительна ...
 sed -i "s | @@@ ToBeReplacedByDesktopBase @@@ | $ DEFAULT_KDM_THEME |" $ {KDMCFG} # переопределения автоматического входа полезны для живой среды debian if [-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, поскольку индексный дескриптор изменится. Риск здесь заключается в том, что # в ситуации, когда демон умер, его 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; then true else # если демон не удаляет свой собственный pid-файл, мы будем rm -f $ PIDFILE $ UPGRADEFILE false fi; } case "$ 1" в начале) setup_config if [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_DISPLAY_MANAGER_FILE)"! = "$ DA затем log_action_msg «Не запускается K Display Manager (kdm); он не является менеджером дисплея по умолчанию».
 иначе log_daemon_msg "Запуск K Display Manager" "kdm" if start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; затем log_end_msg 0 иначе log_action_end_msg 1 "уже запущен" fi fi ;; перезапуск) /etc/init.d/kdm stop if [-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 ;; stop) log_action_begin_msg "Остановка K Display Manager: kdm" if [!  -f $ PIDFILE]; затем log_action_end_msg 0 "не работает ($ PIDFILE не найден)" exit 0 иначе DAEMONPID = $ (cat $ PIDFILE | tr -d '[: blank:]') KILLCOUNT = 1 if [!  -e $ UPGRADEFILE]; тогда если start-stop-daemon --stop --quiet $ SSD_ARGS; then # дайте обработчику сигналов kdm секунду, чтобы перевести дыхание, sleep 1 else log_action_cont_msg "not running" fi fi while [$ KILLCOUNT -le 5]; делать, если still_running; затем убить $ DAEMONPID, иначе прервать сон 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) выполнено, если still_running; затем log_action_cont_msg "не отвечает на сигнал TERM (pid $ DAEMONPID)" else rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; status) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && exit 0 || выход $?
Это то, что в указанном файле есть на другом ПК, но я не мог его увидеть вчера вечером, я покажу вам другую альтернативу

Решение, которое я нашел тогда, заключалось в создании собственного сценария запуска, который используется для KDM или любого другого приложения, которое мы хотим запустить, который содержит следующее:

#! / bin / sh ПУТЬ = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-functions регистр "$ 1" в начале | "") / usr / bin / kdm ;; stop) # No-op ;; *) echo "Использование: kdm [start | stop | restart]"> & 2 exit 3 ;; что C

Теперь, чтобы KDM запустился автоматически, необходимо активировать указанный скрипт, поэтому я использую РККонф для этого. И готово. Однако рекомендую использовать оригинал 😛


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Vicky сказал

    Я использую альтернативу kdm под названием sddm.

    1.    Elav сказал

      Хм. Я ее не знал ... Я посмотрю.

    2.    Elav сказал

      Дерьмо !!! Требуется GLIBC 2.14, а в Debian - 2.13 ¬_¬

  2.   st0rmt4il сказал

    Уммм, вроде нормально: D .. elav, чтобы включить другие среды и правильно использовать указанный скрипт, нам просто нужно изменить имя оконного менеджера, который мы хотим использовать, верно?

    Привет!

  3.   эрдосаин9 сказал

    Эй.
    Хотя это не имеет отношения к самой статье, я хотел спросить вас: не могли бы вы сделать «что делать после установки Wheezy»?
    Потому что у меня возникли проблемы с его установкой. Например:
    1-Несмотря на то, что для установки требуется сеть Wi-Fi, после ее завершения нет подключения к Wi-Fi и даже программы для управления сетями. (Я подключил его в конце вручную с прямой консоли ... но мне показалось, что кто-то подключается к Wi-Fi, пока он установлен, а затем даже не устанавливает сетевой менеджер ... или что-то в этом роде ...)
    2-хотя установка идет на выбранном вами языке, то система установлена ​​на английском? Не знаю, как это исправить ...

    И что ж, niente piu ... если вы можете расширить это своим опытом и написать сообщение, это будет очень полезно для меня, хе-хе ... (я тоже представляю себе других).
    Привет!

    1.    Elav сказал

      Хм, какое окружение рабочего стола вы используете? Я думаю, KDE ..

      1.    эрдосаин9 сказал

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

        Saludos у Gracias

  4.   Хайро сказал

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

    Ожидание полного заполнения / dev

    Мой компьютер - ноутбук ASUS K93SV
    Intel Ядро i7 2670QM
    ошибка возникает не всегда. Когда это происходит, мне приходится принудительно выключать и перезапускать.

    1.    Elav сказал

      Быстрый поиск в Google вернул мне это:

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

      Скажите, решает ли это вас.

      1.    Хайро сказал

        Я прочитал весь пост, но не решаюсь сделать это, потому что я проверил свой menu.list, и он полностью отличается от того, что появляется в этом разговоре.

  5.   cooper15 сказал

    Этот Elav всегда публикует интересные стики, у меня есть эта проблема, и поэтому я использую LightDM, который, кстати, работает довольно хорошо, но давайте посмотрим, работает ли этот скрипт (странный KDM) для меня, я благодарю вас за ваш вклад 😉