Скрипт за стартиране на KDM (в случай че не стане)

debianlight_kdm

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

Единственият проблем, който имах, беше с KDM, който очевидно изобщо не се инсталира добре, защото не искаше да стартира автоматично, нещо, което привлича вниманието ми, защото направих същата инсталация, със същите хранилища на другия компютър и всичко вървеше чудесно .

Докато търсех причината за проблема, открих, че файлът /etc/init.d/kdm не е създаден, а той би трябвало да съдържа следното:

#! / bin / sh -e ### НАЧАЛО НАЧАЛО ИНФОРМАЦИЯ # Предоставя: kdm # Задължително-Старт: $ local_fs $ remote_fs # Задължително-Стоп: $ local_fs $ remote_fs # Трябва-Старт: екран на конзолата kbd acpid dbus hal krb5- kdc # Should-Stop: console-screen kbd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Кратко описание: X display manager for KDE # Описание: KDM управлява колекция от X сървъри, които могат да бъде на локален хост или отдалечени машини.
### END INIT INFO # /etc/init.d/kdm: стартиране или спиране на X дисплейния мениджър # Скрипт, първоначално откраднат от пакета xdm # # описание: K Display Manager # # импортиране на LSB init функции. / 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 = вярно 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:]] * Тема = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; след това KDMOVERRIDEDIR = / и т.н. / по подразбиране / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdmx / aya ​​share / a / kdmx / a / share / kd / kd / share / apps / kdde4 $ DAEMON || изход 0 # некомментирайте, ако искате автоматичното влизане да зависи от нивото на изпълнение #test "$ runlevel" || {runlevel = `ниво на изпълнение`; ниво на изпълнение = $ {ниво на изпълнение # *}; } #test "$ runlevel" = 4 && ARG = -autolog || ARG = -noautolog #comment, ако искате тонове информация за отстраняване на грешки във вашия syslog #ARG = "$ ARG -debug 255" # използваме алтернативен kdm master конфигурационен файл ARG = "$ ARG -config $ KDMCFG" # генерираме kdm конфигурационни файлове genkdmconf --в $ KDMCFGDIR 1> / dev / null # ние заместваме източника. run-parts сортира списъка в предвидим ред, ако [-d "$ KDMOVERRIDEDIR"]; след това за част в $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); ° С. "$ 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 |" $ KDMCFG ако 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" ]; then 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 за # стартиране-спиране-на-демон, тъй като индексният възел ще се е променил.  Рискът тук е, че # в ситуация, в която демонът е спрял да работи, неговият 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; след това вярно else # ако демонът не премахне собствения си pidfile, ние ще 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); това не е мениджърът на дисплея по подразбиране."
else log_daemon_msg "Стартиране на K Display Manager" "kdm" ако start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; след това log_end_msg 0 else log_action_end_msg 1 "вече работи" fi fi ;; рестартиране) /etc/init.d/kdm спиране, ако [-f $ PIDFILE]; тогава ако still_running; след това излезте 1 fi fi /etc/init.d/kdm start ;; презареждане) log_action_begin_msg "Презареждане на конфигурацията на K Display Manager ..."
ако start-stop-daemon --stop --signal 1 --quet $ SSD_ARGS; след това log_action_end_msg 0 else 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)" else rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; статус) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && изход 0 || изход $?
;; *) echo "Употреба: /etc/init.d/kdm {старт|стоп|рестарт|презареждане|принудително презареждане|статус}" изход 1 ;; esac изход 0
Това е, което споменатият файл има на другия компютър, но не можах да го видя снощи, показвам ви другата ми алтернатива

Решението, което намерих тогава, беше да създам собствен скрипт за стартиране, който се използва за KDM или друго приложение, което искаме да стартираме, което съдържа това:

#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-functions случай "$ 1" в начало | "") / usr / bin / kdm ;; стоп) # No-op ;; *) echo "Употреба: kdm [старт | стоп | рестартиране]"> & 2 изход 3 ;; че С

Сега, за да стартира KDM автоматично, е необходимо да активирате този скрипт, така че използвам RCConf за това. И това е всичко. Въпреки това, препоръчвам да използвате оригиналния 


Добавяне като предпочитан източник в Google