Skript KDM-i käivitamiseks (kui see ei käivitu)

debianlight_kdm

Eile installisin oma Debian Wheezy nullist uuesti oma kohandatud KDE 4.10 repositooriumiga ja pean ütlema, et kui see varem hästi töötas, siis nüüd töötab see palju paremini.

Ainus probleem, mis mul tekkis, oli KDM-iga, mis ilmselt ei installinud üldse hästi, sest see ei tahtnud automaatselt käivituda, mis köitis mu tähelepanu, kuna tegin sama installi, samade hoidlatega teises arvutis ja kõik oli läheb suurepäraselt.

Probleemi põhjust otsides avastasin, et faili /etc/init.d/kdm ei loodud ja see peaks sisaldama järgmist:

#! / bin / sh -e ### INFO ALGUSTAMINE # Pakub: kdm # Required-Start: $ local_fs $ remote_fs # Required-Stop: $ local_fs $ remote_fs # Should-Start: konsooliekraan kbd acpid dbus hal krb5- kdc # Peaks-Seis: konsool-ekraan kbd # Vaikimisi-Start: 2 3 4 5 # Vaikimisi-Seis: 0 1 6 # Lühikirjeldus: KDE X-i kuvahaldur # Kirjeldus: KDM haldab X-serverite kogu, mis võib olla kohalikus hostis või kaugmasinates.
### END INIT INFO # /etc/init.d/kdm: käivitage või peatage X-kuvahaldur # Xdm-paketist algselt varastatud skript # # description: K Display Manager # # impordib LSB init-funktsioonid. / lib / lsb / init-function # määrab lokaadi, kui [-r / etc / default / locale]; siis. / etc / default / locale eksport LANG LANGUAGE fi # kdm-i käivitamiseks, isegi kui see pole vaikehaldur, muutke # HEED_DEFAULT_DISPLAY_MANAGER väärtuseks "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 / käivitama UPGRADEFILE = / var / run / kdm.upgrade setup_config () {# parameetrid kdm-i kohandamise toetamiseks KDMRC = / etc / kde4 / kdm / kdmrc BACKGROUNDRC = / etc / kde4 / kdm / backgroundrc # kui konfiguratsiooni muudab kdmtheme või muud tööriistad , ärge tehke maagiat, kui grep -q "^ [[: tühik:]] * Theme = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; siis KDMOVERRIDEDIR = / etc / default / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdya kdde4 / teemad $ DAEMON || exit 0 # uncomment, kui soovite, et automaatne sisselogimine sõltuks töötasandist #test "$ runlevel" || {runlevel = `jooksutasand`; runlevel = $ {runlevel # *}; } #test "$ runlevel" = 4 && ARG = -autolog || ARG = -noautolog # uncomment, kui soovite oma syslogisse palju silumisteavet #ARG = "$ ARG -debug 255" # kasutame alternatiivset kdm-i põhikonfiguratsioonifaili ARG = "$ ARG -config $ KDMCFG" # genereerime kdm konfiguratsioonifailid genkdmconf - in $ KDMCFGDIR 1> / dev / null # meie allikad alistavad. run-parts sorteerib loendi prognoositavas järjekorras, kui [-d "$ KDMOVERRIDEDIR"]; siis osa osas $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c. "$ part" valmis fi # värskendame kdm-i konfiguratsioonifaile (ainult tühistatud väärtused) [-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 | ^ # \? Keel =. * | Keel = $ LANGUAGE |" $ KDMCFG, kui grep -q "^ [[: tühik:]] * Taustpilt = stripes.png" $ {BACKGROUNDRC}; siis [-n "$ TAPEET"] && [-e "$ TAPEET"] && sed -i "s | ^ # \? Tapeet =. * | Wallpaper =` loe link -f $ TAPEETI | | " $ BACKGROUNDCFG fi # usetheme on nüüd "vaikimisi" sisse lülitatud, seega peame olema kindlad, et teema pole kehtetu ...
sed -i "s|@@@ToBeReplacedByDesktopBase@@@|$DEFAULT_KDM_THEME|" ${KDMCFG} # automaatse sisselogimise tühistamised on kasulikud reaalajas Debiani keskkonnas, kui [ -n "$AUTOLOGINUSER" ]; siis 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 } # Kui me deemonit uuendasime, ei saa me # start-stop-daemon jaoks argumenti --exec kasutada, kuna inode on muutunud.  Risk seisneb selles, et olukorras, kus deemon suri, selle pid-faili ei puhastatud ja # mõni teine ​​protsess töötab nüüd selle pid-i all, saadab start-stop-daemon signaale süütule protsessile.  Siiski tundub see nurga alt käiva juhtumina.
# C'est la vie!
kui [-e $ UPGRADEFILE]; siis 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; siis tõsi muu # kui deemon ei eemalda oma pidifaili, siis rm -f $ PIDFILE $ UPGRADEFILE false fi; } juhtum "$ 1" alguses) setup_config, kui [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (kass $ DEFAULT_DISPLAY_MANAGER_FILE)" = "$ DA siis log_action_msg "K Display Manageri (kdm) ei käivitata; see pole vaikehaldur."
else log_daemon_msg "K Display Manageri käivitamine" "kdm" if start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; siis log_end_msg 0 muu log_action_end_msg 1 "juba töötab" fi fi ;; taaskäivitage) /etc/init.d/kdm peatus, kui [-f $ PIDFILE]; siis kui ikka töötab siis väljuge 1 fi fi /etc/init.d/kdm start ;; reload) log_action_begin_msg "K Display Manageri konfiguratsiooni uuesti laadimine ..."
kui start-stop-daemon --stop --signaal 1 - vaikne $ SSD_ARGS; siis log_action_end_msg 0 muu log_action_end_msg 1 "kdm ei tööta" fi ;; jõu laadimine) /etc/init.d/kdm uuesti laadima ;; stop) log_action_begin_msg "K Display Manageri peatamine: kdm" if [! -f $ PIDFILE]; siis log_action_end_msg 0 "ei tööta ($ PIDFILE ei leitud)" exit 0 else DAEMONPID = $ (kass $ PIDFILE | tr -d '[: blank:]') KILLCOUNT = 1, kui [! -e $ UPGRADEFILE]; siis kui start-stop-daemon --stop - vaikne $ SSD_ARGS; siis # anna kdmi signaalkäitlejale sekund, et hinge tõmmata. 1 muu log_action_cont_msg "ei tööta" fi, samal ajal kui [$ KILLCOUNT -le 5]; tee, kui ikka jookseb; siis tapke $ DAEMONPID muu puhkeolek 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) tehtud, kui ikka töötab_; siis log_action_cont_msg "ei reageeri TERM signaalile (pid $ DAEMONPID)" muidu rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; status) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && exit 0 || väljuda $?
;; *) echo "Kasutus: /etc/init.d/kdm {start|stop|taaskäivitus|reload|force-reload|status}" exit 1 ;; esac exit 0
See on see fail, mis on teises arvutis, kuid ma ei näinud seda eile õhtul, ma näitan teile oma muud alternatiivi

Siis leidsin lahenduse luua oma käivitusskript, mida kasutatakse KDM-i või mis tahes muu rakenduse jaoks, mida me tahame käivitada ja mis sisaldab seda:

#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-function juhtum "$ 1" alguses | "") / usr / bin / kdm ;; stop) # Ei-op ;; *) echo "Kasutamine: kdm [start | stop | restart]"> & 2 exit 3 ;; et C

Nüüd, KDM-i automaatseks käivitamiseks on vaja see skript aktiveerida, seega kasutan selleks RCConfi . Ja ongi kõik. Soovitan siiski kasutada originaali 


Lisa eelistatud allikana Google'is