Skript pro spuštění KDM (v případě, že tomu tak není)

debianlight_kdm

Včera jsem si od základu znovu nainstaloval Debian Wheezy s mým vlastním repozitářem KDE 4.10 a musím říct, že pokud to předtím fungovalo dobře, teď to funguje mnohem lépe.

Jediný problém, který jsem měl, byl s KDM, který se zjevně vůbec neinstaloval dobře, protože nechtěl automaticky spouštět, něco, co mě zaujalo, protože jsem provedl stejnou instalaci, se stejnými repozitáři na druhém PC a všechno šlo skvěle .

Při hledání příčiny problému jsem zjistil, že nebyl vytvořen soubor /etc/init.d/kdm , který by měl obsahovat následující:

$ kdc # Should-Stop: console-screen kbd # Default-Start: 5 2 3 4 # Default-Stop: 5 0 1 # Short-Description: X display manager for KDE # Description: KDM manages a collection of X servers, which may být na místním hostiteli nebo na vzdálených počítačích.
### END INIT INFO # /etc/init.d/kdm: spuštění nebo zastavení správce zobrazení X # Skript původně odcizený z balíčku xdm # # description: K Správce zobrazení # # importuje funkce LSB init. / lib / lsb / init-functions # nastavit národní prostředí, pokud [-r / etc / default / locale]; pak. / etc / default / locale export LANG LANGUAGE fi # pro spuštění kdm, i když to není výchozí správce zobrazení, změňte # 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 pro podporu přizpůsobení kdm KDMRC = / etc / kde4 / kdm / kdmrc BACKGROUNDRC = / etc / kde4 / kdm / backgroundrc # pokud je konfigurace změněna kdmtheme nebo jinými nástroji , nedělejte magii, pokud grep -q "^ [[: space:]] * Theme = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; pak KDMOVERRIDEDIR = / etc / default / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdmx / aiya / aplikace / krim / aplikace / krim / aplikace $ DAEMON || ukončete 4 # odkomentování, pokud chcete, aby automatické přihlášení bylo závislé na úrovni běhu #test "$ runlevel" || {runlevel = `runlevel`; runlevel = $ {runlevel # *}; } #test "$ runlevel" = 0 && ARG = -autolog || ARG = -noautolog # uncomment, pokud chcete ve svém syslogu spoustu ladicích informací #ARG = "$ ARG -debug 4" # používáme alternativní hlavní konfigurační soubor kdm ARG = "$ ARG -config $ KDMCFG" # generujeme kdm konfigurační soubory genkdmconf - v $ KDMCFGDIR 255> / dev / null # přepíšeme zdroje. run-parts seřadí seznam v předvídatelném pořadí, pokud [-d "$ KDMOVERRIDEDIR"]; pak pro část v $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); C. "$ part" hotovo # aktualizujeme konfigurační soubory kdm (pouze přepsané hodnoty) [-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}; pak [-n "$ WALLPAPER"] && [-e "$ WALLPAPER"] && sed -i "s | ^ # \? Wallpaper =. * | Wallpaper =` readlink -f $ WALLPAPER` | " $ BACKGROUNDCFG fi # usetheme je nyní zapnuto „ve výchozím nastavení“, takže si musíme být jisti, že motiv není neplatný ...
sed -i "s|@@@ToBeReplacedByDesktopBase@@@|$DEFAULT_KDM_THEME|" ${KDMCFG} # Přepsání automatického přihlášení je užitečné pro živé prostředí Debianu 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 } # Pokud jsme démona upgradovali, nemůžeme použít argument --exec pro # spuštění a zastavení démona, protože inode se změní.  Riziko spočívá v tom, že # v situaci, kdy démon zemřel, jeho pid soubor nebyl vyčištěn a # pod tímto pid nyní běží jiný proces, start-stop-daemon odešle # signály neškodnému procesu.  Zdá se však, že se jedná o skrytý případ.
# C'est la vie!
if [-e $ UPGRADEFILE]; pak 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; potom true else # pokud démon neodstraní svůj vlastní soubor pidfile, budeme rm -f $ PIDFILE $ UPGRADEFILE false fi; } případ "$ 1" na začátku) setup_config if [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_MANAGER_FILE)"! = "$ DAEMON"] potom log_action_msg "Nezačíná se Správce zobrazení K (kdm); není to výchozí správce zobrazení."
else log_daemon_msg "Spuštění programu K Display Manager" "kdm", pokud start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; potom log_end_msg 0 else log_action_end_msg 1 "již běžící" fi fi ;; restart) /etc/init.d/kdm stop if [-f $ PIDFILE]; pak pokud still_running; poté ukončete 1 fi fi /etc/init.d/kdm start ;; reload) log_action_begin_msg "Znovu načíst konfiguraci Správce zobrazení K ..."
if start-stop-daemon --stop --signal 1 --quiet $ SSD_ARGS; pak log_action_end_msg 0 else log_action_end_msg 1 „kdm neběží“ fi ;; force-reload) /etc/init.d/kdm reload ;; stop) log_action_begin_msg "Zastavení K Display Manager: kdm" pokud [! -f $ PIDFILE]; pak log_action_end_msg 0 "neběží ($ PIDFILE nebyl nalezen)" výstup 0 jinak DAEMONPID = $ (cat $ PIDFILE | tr -d '[: blank:]') KILLCOUNT = 1 pokud [! -e $ UPGRADEFILE]; pak pokud start-stop-daemon --stop --quiet $ SSD_ARGS; pak # dejte obslužnému programu signálu kdm sekundu, aby zachytil dech spánku 1 else log_action_cont_msg "neběží" fi fi zatímco [$ KILLCOUNT -le 5]; udělat if still_running; poté zabijte $ DAEMONPID, jinak rozbijte spánek 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) hotovo, pokud still_running; potom log_action_cont_msg „neodpovídá na TERM signál (pid $ DAEMONPID)“ else rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; status) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && exit 0 || opustit $?
;; *) echo "Použití: /etc/init.d/kdm {start|stop|restart|reload|force-reload|status}" exit 1 ;; esac exit 0
Toto má tento soubor na druhém PC, ale včera v noci jsem ho nemohl vidět, ukazuji vám svou další alternativu

Řešením, které jsem tehdy našel, bylo vytvoření vlastního spouštěcího skriptu, který se používá pro KDM nebo jakoukoli jinou aplikaci, kterou chceme spustit, která obsahuje toto:

#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-functions případ "$ 1" na začátku | "") / usr / bin / kdm ;; stop) # No-op ;; *) echo "Použití: kdm [start | stop | restart]"> & 2 exit 3 ;; že C.

Aby se KDM spustil automaticky, je nutné aktivovat tento skript, takže k tomu používám RCConf . A to je vše. Doporučuji však použít původní 


Přidat jako preferovaný zdroj v Googlu