Skript za zagon KDM (v primeru, da se ne)

debianlight_kdm

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
To ima omenjena datoteka na drugem računalniku, vendar je sinoči nisem mogel videti, pokazam vam svojo drugo možnost

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 


Dodaj kot prednostni vir v Googlu