Tegnap újratelepítettem a Debian Wheezy- met a nulláról a saját KDE 4.10-es repository- mmal , és azt kell mondanom, hogy ha korábban jól működött, most sokkal jobban működik.
Az egyetlen problémám a KDM-mel volt, amely látszólag egyáltalán nem települt jól, mert nem akart automatikusan elindulni, ami felkeltette a figyelmemet, mert ugyanazt a telepítést végeztem, ugyanazokkal a tárházakkal a másik PC-n, és minden remekül ment .
A probléma okának keresése közben felfedeztem, hogy az /etc/init.d/kdm fájl nem jött létre, amelynek a következőket kellene tartalmaznia:
#! / bin / sh -e ### BITIN INIT INFO # Biztosítja: kdm # Kötelező-Kezdés: $ local_fs $ Távoli_fs # Kötelező-Stop: $ Helyi_fs $ Távoli_fs # Kötelező-Kezdés: konzol-képernyő kbd acpid dbus hal krb5- kdc # Should-Stop: konzol-képernyő kbd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Rövid leírás: X kijelzőkezelő a KDE számára # Leírás: A KDM kezeli az X szerverek gyűjteményét, amelyek legyen a helyi gazdagépen vagy távoli gépeken.
### END INIT INFO # /etc/init.d/kdm: indítsa el vagy állítsa le az X kijelzőkezelőt # Az xdm csomagból eredetileg ellopott szkript # # description: K Display Manager # # importálja az LSB init függvényeket. / lib / lsb / init-function # állítsa be a területi beállítást, ha [-r / etc / default / locale]; akkor. / etc / default / locale export LANG LANGUAGE fi # a kdm indításához, még akkor is, ha ez nem az alapértelmezett kijelzőkezelő, módosítsa a # HEED_DEFAULT_DISPLAY_MANAGER értéket "hamis" értékre.
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 / fut / UPGRADEFILE = / var / run / kdm.upgrade setup_config () {# paraméterek a kdm testreszabásának támogatásához KDMRC = / etc / kde4 / kdm / kdmrc BACKGROUNDRC = / etc / kde4 / kdm / backgroundrc # ha a konfigurációt kdmtheme vagy más eszközök megváltoztatják , ne csinálj varázslatot, ha grep -q "^ [[: space:]] * Theme = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; akkor KDMOVERRIDEDIR = / etc / default / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME / Apps / usd / Share / usd / megoszt $ DAEMON || exit 4 # uncomment, ha azt szeretné, hogy az automatikus bejelentkezés futásfüggő legyen #test "$ runlevel" || {runlevel = `futási szint`; futási szint = $ {futási szint # *}; } #test "$ runlevel" = 0 && ARG = -autolog || ARG = -noautolog # uncomment, ha rengeteg hibakeresési információt akarsz a syslogodba #ARG = "$ ARG -debug 4" # alternatív kdm mester konfigurációs fájlt használunk ARG = "$ ARG -config $ KDMCFG" # kdm-et generálunk konfigurációs fájlok genkdmconf --in $ KDMCFGDIR 255> / dev / null # a forrás felülírja. a run-parts kiszámítható sorrendbe rendezi a listát, ha [-d "$ KDMOVERRIDEDIR"]; majd a $ -ban (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c. "$ part" kész fi # frissítjük a kdm konfigurációs fájlokat (csak felülírt értékeket) [-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 | ^ # \? Nyelv =. * | Nyelv = $ NYELV |" $ KDMCFG ha grep -q "^ [[: space:]] * Wallpaper = stripes.png" $ {BACKGROUNDRC}; akkor [-n "$ WALLPAPER"] && [-e "$ WALLPAPER"] && sed -i "s | ^ # \? Wallpaper =. * | Wallpaper =` readlink -f $ WALLPAPER` | " $ BACKGROUNDCFG fi # usetheme most "alapértelmezés szerint" be van kapcsolva, ezért biztosnak kell lennünk abban, hogy a téma nem érvénytelen ...
sed -i "s|@@@ToBeReplacedByDesktopBase@@@|$DEFAULT_KDM_THEME|" ${KDMCFG} # Az automatikus bejelentkezés felülbírálásai hasznosak élő debian környezetben, ha [ -n "$AUTOLOGINUSER" ]; akkor 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 } # Ha frissítettük a démont, nem használhatjuk a --exec argumentumot a # start-stop-daemon indításához, mivel az inode megváltozik. A kockázat az, hogy # egy olyan helyzetben, amikor a démon leállt, a pid fájlja nem lett kitakarítva, és # egy másik folyamat fut most a pid alatt, a start-stop-daemon # jeleket küld egy ártatlan folyamatnak. Ez azonban sarokesetnek tűnik.
# Ilyen az élet!
ha [-e $ UPGRADEFILE]; akkor 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; akkor true else # ha a démon nem távolítja el a saját pidfájlját, akkor rm -f $ PIDFILE $ UPGRADEFILE hamis fi; } eset "$ 1" induláskor) setup_config if [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_MANAGER_FILEEM)" = "$ DA then log_action_msg "Nem indul el a K Display Manager (kdm); ez nem az alapértelmezett kijelzőkezelő."
else log_daemon_msg "A K Display Manager indítása" "kdm" if start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; akkor log_end_msg 0 else log_action_end_msg 1 "már fut" fi fi ;; újraindítás) /etc/init.d/kdm stop ha [-f $ PIDFILE]; akkor ha még mindig fut; majd kilép az 1 fi fi /etc/init.d/kdm start ;; reload) log_action_begin_msg "A K Display Manager konfigurációjának újratöltése ..."
if start-stop-daemon --stop --signal 1 - csendes $ SSD_ARGS; akkor log_action_end_msg 0 else log_action_end_msg 1 "a kdm nem fut" fi ;; erő-újratöltés) /etc/init.d/kdm újratöltés ;; stop) log_action_begin_msg "A K Display Manager leállítása: kdm" if [! -f $ PIDFILE]; akkor a log_action_end_msg 0 "nem fut ($ PIDFILE nem található)" kilépés 0 más DAEMONPID = $ (cat $ PIDFILE | tr -d '[: blank:]') KILLCOUNT = 1, ha [! -e $ UPGRADEFILE]; akkor ha start-stop-daemon --stop - csendes $ SSD_ARGS; akkor # adj egy másodpercet a kdm jelkezelőjének, hogy lélegzetvisszafogást kapjon. 1 else log_action_cont_msg "nem fut" fi, miközben [$ KILLCOUNT -le 5]; csináld, ha még mindig fut; akkor ölje meg $ DAEMONPID else break fi sleep 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) kész, ha még mindig fut; akkor log_action_cont_msg "nem válaszol a TERM jelre (pid $ DAEMONPID)" else rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; status) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && exit 0 || kilép $?
;; *) echo "Használat: /etc/init.d/kdm {start|stop|restart|reload|force-reload|status}" exit 1 ;; esac exit 0
A megoldás, amelyet akkor találtam, az volt, hogy létrehoztam egy saját indító szkriptet, amelyet a KDM-hez vagy bármely más alkalmazáshoz használunk, és amelyet ez tartalmaz:
#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-function eset "$ 1" indításkor | "") / usr / bin / kdm ;; stop) # No-op ;; *) echo "Használat: kdm [start | stop | restart]"> & 2 exit 3 ;; hogy C
A KDM automatikus indításához aktiválni kell ezt a szkriptet, ezért én az RCConf-ot használom erre. És ennyi. Azonban az eredeti használatát javaslom.