Včeraj sem znova namestil svoj Debian Wheezy iz nič z mojim prilagojenim repozitorijem KDE 4.10 in moram reči, da če je prej delovalo dobro, zdaj deluje veliko bolje.
Edina težava, ki sem jo imela, je bila s KDM, ki se očitno sploh ni dobro namestil, ker se ni hotel samodejno zagnati, nekaj, kar pritegne mojo pozornost, ker sem isto namestitev opravil z istimi repozitoriji na drugem računalniku in vse je bilo gre super.
Med iskanjem vzroka težave sem ugotovil, da datoteka /etc/init.d/kdm , ki bi morala vsebovati naslednje: ni bila ustvarjena .
#! / bin / sh -e ### BEGIN INIT INFO # Zagotavlja: kdm # Required-Start: $ local_fs $ remote_fs # Required-Stop: $ local_fs $ remote_fs # Should-Start: console-screen kbd acpid dbus hal krb5- kdc # Should-Stop: console-screen kbd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Kratek opis: X display manager for KDE # Opis: KDM upravlja zbirko X strežnikov, ki lahko biti na lokalnem gostiteljskem ali oddaljenem računalniku.
### END INIT INFO # /etc/init.d/kdm: zagon ali zaustavitev upravitelja zaslona X # Skript, ki je bil prvotno ukraden iz paketa xdm # # opis: K Display Manager # #, uvozi funkcije za zagon LSB. / lib / lsb / init-functions # nastavite področne nastavitve, če [-r / etc / default / locale]; potem. / etc / default / locale export LANG LANGUAGE fi # za zagon kdm, tudi če ni privzeti upravitelj zaslona, spremenite # 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. UPGRADEFILE = / var / run / kdm.upgrade setup_config () {# parametri za podporo prilagajanju kdm KDMRC = / etc / kde4 / kdm / kdmrc BACKGROUNDRC = / etc / kde4 / kdm / backgroundrc #, če konfiguracijo spremeni kdmtheme ali druga orodja , ne delaj čarovnije, če grep -q "^ [[: space:]] * Tema = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; potem KDMOVERRIDEDIR = / etc / default / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdmx / apps / kdmde / apps / kdmde / apps / kdmx / apps / kdmde / apps / kdm kdde4 / teme $ DAEMON || izhod 0 # razkomentiraj, če želite, da je samodejna prijava odvisna od stopnje #test "$ runlevel" || {runlevel = `runlevel`; runlevel = $ {runlevel # *}; } #test "$ runlevel" = 4 && ARG = -autolog || ARG = -noautolog # nekomentiraj, če želite v svojem syslogu na tone informacij o odpravljanju napak #ARG = "$ ARG -debug 255" # uporabljamo nadomestno glavno konfiguracijsko datoteko kdm ARG = "$ ARG -config $ KDMCFG" # ustvarimo kdm konfiguracijske datoteke genkdmconf - v $ KDMCFGDIR 1> / dev / null # preglasimo izvor. run-parts razvrsti seznam v predvidljivem vrstnem redu, če [-d "$ KDMOVERRIDEDIR"]; nato za del v $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c. "$ part" končano fi # posodabljamo konfiguracijske datoteke kdm (samo prepisane vrednosti) [-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 | ^ # \? Jezik =. * | Jezik = $ LANGUAGE |" $ KDMCFG, če grep -q "^ [[: presledek:]] * Ozadje = črte.png" $ {BACKGROUNDRC}; potem [-n "$ TAPETA"] && [-e "$ TAPETA"] && sed -i "s | ^ # \? Ozadje =. * | Ozadje =` branje povezave -f $ TAPETA` | " $ BACKGROUNDCFG fi # usetheme je zdaj vključen "privzeto", zato moramo biti prepričani, da tema ni neveljavna ...
sed -i "s|@@@ZamenjaJoBiZamenjaliZOsnovnoNamizjem@@@|$DEFAULT_KDM_THEME|" ${KDMCFG} # Preglasitve samodejne prijave so uporabne za živo okolje Debian if [ -n "$AUTOLOGINUSER" ]; then sed -i "s|^#\?OmogočenaPrijava=.*|OmogočenaPrijava=true|" $KDMCFG sed -i "s|^#\?OmogočenaPrijavaUporabnik=.*|OmogočenaPrijavaUporabnik=$AUTOLOGINUSER|" $KDMCFG fi [ -n "$AUTOLOGINDELAY" ] && sed -i "s|^#\?ZakasnitevPrijave=.*|ZakasnitevPrijave=$AUTOLOGINDELAY|" $KDMCFG [ -n "$AUTOLOGINAGAIN" ] && sed -i "s|^#\?AutoLoginAgain=.*|AutoLoginAgain=$AUTOLOGINAGAIN|" $KDMCFG [ -n "$AUTOLOGINLOCKED" ] && sed -i "s|^#\?AutoLoginLocked=.*|AutoLoginLocked=$AUTOLOGINLOCKED|" $KDMCFG fi return 0 } # Če smo nadgradili demon, ne moremo uporabiti argumenta --exec za # zagon-ustavitev demona, ker se bo inoda spremenila. Tveganje je, da # v primeru, ko je demon umrl, njegova datoteka pid ni bila očiščena in # se pod tem pid-om izvaja drug proces, bo start-stop-daemon poslal # signale nedolžnemu procesu. Vendar se zdi, da je to konkreten primer.
# Takšno je življenje!
če je [-e $ UPGRADEFILE]; potem 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; potem velja drugače # če demon ne odstrani lastne datoteke pid, bomo rm -f $ PIDFILE $ UPGRADEFILE false fi; } primer "$ 1" v začetku) setup_config if [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_MANAGER_FILE)"] = = $ DAEMON then log_action_msg "Ne zaženem upravitelja zaslona K (kdm); ni privzeti upravitelj zaslona."
else log_daemon_msg "Zagon upravitelja zaslona K" "kdm", če je start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; potem log_end_msg 0 sicer log_action_end_msg 1 "že teče" fi fi ;; ponovni zagon) /etc/init.d/kdm stop, če [-f $ PIDFILE]; potem če še vedno_teče; nato zapustite 1 fi fi /etc/init.d/kdm start ;; reload) log_action_begin_msg "Ponovno nalaganje konfiguracije K Display Manager ..."
če je start-stop-daemon --stop --signal 1 - tiho $ SSD_ARGS; potem log_action_end_msg 0 sicer log_action_end_msg 1 "kdm se ne izvaja" fi ;; force-reload) /etc/init.d/kdm reload ;; stop) log_action_begin_msg "Ustavitev upravitelja zaslona K: kdm", če [! -f $ PIDFILE]; potem log_action_end_msg 0 "se ne izvaja ($ PIDFILE ni najden)" izhod 0 else DAEMONPID = $ (cat $ PIDFILE | tr -d '[: blank:]') KILLCOUNT = 1 if [! -e $ UPGRADEFILE]; potem če start-stop-daemon --stop --quiet $ SSD_ARGS; nato # dajte sekundo kdm-jevemu upravljavcu signala, da pride do sape 1 else log_action_cont_msg "ne deluje" fi fi, medtem ko [$ KILLCOUNT -le 5]; naredi, če še vedno_teče; nato ubijte $ DAEMONPID, sicer prekinite spanje 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) storjeno, če še vedno teče; potem log_action_cont_msg "se ne odziva na signal TERM (pid $ DAEMONPID)" sicer rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; status) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && izhod 0 || zapustiti $?
;; *) echo "Uporaba: /etc/init.d/kdm {start|stop|restart|reload|force-reload|status}" exit 1 ;; esac exit 0
Rešitev, ki sem jo takrat našel, je bila ustvariti lasten zagonski skript, ki se uporablja za KDM ali katero koli drugo aplikacijo, ki jo želimo zagnati, ki vsebuje to:
#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-functions primer "$ 1" v začetku | "") / usr / bin / kdm ;; stop) # Ne-op ;; *) echo "Uporaba: kdm [start | stop | ponovni zagon]"> & 2 izhod 3 ;; da je C
Za samodejni zagon KDM-ja je treba aktivirati ta skript, zato za to uporabljam RCConf . In to je to. Vendar priporočam uporabo originalnega