Komentosarja KDM: n käynnistämiseksi (jos se ei käy)

debianlight_kdm

Asensin eilen Debian Wheezyn uudelleen alusta alkaen mukautetulla KDE 4.10 -arkistollani ja täytyy sanoa, että jos se toimi ennen hyvin, nyt se toimii paljon paremmin.

Ainoa ongelma minulla oli KDM: ssä, joka ei ilmeisesti asentunut lainkaan, koska se ei halunnut aloittaa automaattisesti, mikä kiinnitti huomioni, koska tein saman asennuksen, samoilla arkistoilla toisella tietokoneella ja kaikki sujui hyvin .

Ongelman syytä etsiessäni huomasin, että tiedostoa /etc/init.d/kdm ei luotu. Sen pitäisi sisältää seuraavaa:

#! / bin / sh -e ### ALOITA ALOITUSTIEDOT # Tarjoaa: kdm # Pakollinen aloitus: $ local_fs $ remote_fs # Pakollinen pysäytys: $ local_fs $ remote_fs # Pitäisi-alkaa: konsolinäyttö kbd acpid dbus hal krb5- kdc # Should-Stop: konsolinäyttö kbd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Lyhyt kuvaus: KDE: n X-näytön hallinta # Kuvaus: KDM hallinnoi X-palvelinten kokoelmaa, joka voi olla paikallisessa isännässä tai etäkoneissa.
### END INIT INFO # /etc/init.d/kdm: Käynnistä tai pysäytä X-näyttöhallinta # Xdm-paketista alunperin varastettu komentosarja # # description: K Display Manager # # tuo LSB-init-toiminnot. / lib / lsb / init-toiminnot # aseta kielialue, jos [-r / etc / default / locale]; sitten. / etc / default / locale export LANG LANGUAGE fi # käynnistääksesi kdm: n, vaikka se ei olekaan oletusnäyttöhallinta, muuta # HEED_DEFAULT_DISPLAY_MANAGER arvoksi "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 / ajaa UPGRADEFILE = / var / run / kdm.upgrade setup_config () {# parametrit, jotka tukevat kdm-mukautusta , älä tee magickia, jos grep -q "^ [[: välilyönti]]] * Teema = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; Sitten KDMOVERRIDEDIR = / etc / default / kdm.d KDMCFGDIR = / var / run / KDM KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdmx / ariya-apps / kdmx / share / testiya-theme = / usr / share / apps / kdde4 $ DAEMON || exit 4 # uncomment, jos haluat automaattisen kirjautumisen olevan ajotasosta riippuvainen #test "$ runlevel" || {ajotaso = `ajotaso`; ajotaso = $ {ajotaso # *}; } #test "$ runlevel" = 4 && ARG = -autolog || ARG = -noautolog # uncomment, jos haluat tonnia virheenkorjaustietoja syslogiin #ARG = "$ ARG -debug 0" # käytämme vaihtoehtoista kdm-pääkonfiguraatiotiedostoa ARG = "$ ARG -config $ KDMCFG" # luomme kdm määritystiedostot genkdmconf - in $ KDMCFGDIR 4> / dev / null # lähteemme ohittaa. run-parts lajittelee luettelon ennakoitavassa järjestyksessä, jos [-d "$ KDMOVERRIDEDIR"]; sitten osaksi $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c. "$ part" valmis fi # päivitämme kdm-määritystiedostot (vain ohitetut arvot) [-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 | ^ # \? Kieli =. * | Kieli = $ LANGUAGE |" $ KDMCFG jos grep -q "^ [[: välilyönti]]] * Taustakuva = stripes.png" $ {BACKGROUNDRC}; sitten [-n "$ TAPETTI"] && [-e "$ TAPETTI"] && sed -i "s | ^ # \? Taustakuva =. * | Taustakuva =` readlink -f $ TAPETTI` | $ BACKGROUNDCFG fi # usetheme on nyt päällä "oletuksena", joten meidän on oltava varma, että teema ei ole virheellinen ...
sed -i "s|@@@ToBeReplacedByDesktopBase@@@|$DEFAULT_KDM_THEME|" ${KDMCFG} # Automaattisen kirjautumisen ohitukset ovat hyödyllisiä live-Debian-ympäristössä jos [ -n "$AUTOLOGINUSER" ]; sitten 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 } # Jos päivitimme daemonin, emme voi käyttää --exec-argumenttia # start-stop-daemon-komennon suorittamiseen, koska inode on muuttunut.  Riskinä tässä on, että # tilanteessa, jossa daemon on kuollut, sen pid-tiedostoa ei ole puhdistettu ja # jokin muu prosessi on nyt käynnissä kyseisen pid-tiedoston alaisuudessa, start-stop-daemon lähettää # signaaleja viattomalle prosessille.  Tämä kuitenkin vaikuttaa nurkkatapaukselta.
# C'est la vie!
jos [-e $ UPGRADEFILE]; sitten 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; sitten totta muu # jos daemon ei poista omaa pidustiedostoa, rm -f $ PIDFILE $ UPGRADEFILE false fi; } tapaus "$ 1" alussa) setup_config if [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_MANAGER_FILE)" = "$ DA sitten log_action_msg "Ei käynnistetä K Display Manageria (kdm); se ei ole oletusnäyttöhallinta."
else log_daemon_msg "K Display Managerin käynnistäminen" "kdm" if start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; sitten log_end_msg 0 muu log_action_end_msg 1 "jo käynnissä" fi fi ;; uudelleenkäynnistys) /etc/init.d/kdm stop, jos [-f $ PIDFILE]; sitten jos vielä_ajossa; sitten poistu 1 fi fi /etc/init.d/kdm start ;; reload) log_action_begin_msg "Ladataan K Display Managerin määrityksiä uudelleen ..."
jos start-stop-daemon --stop --signaali 1 - hiljainen $ SSD_ARGS; sitten log_action_end_msg 0 muu log_action_end_msg 1 "kdm ei ole käynnissä" fi ;; pakota uudelleen) /etc/init.d/kdm uudelleen ;; stop) log_action_begin_msg "K Display Managerin pysäyttäminen: kdm" if [! -f $ PIDFILE]; sitten log_action_end_msg 0 "ei ole käynnissä ($ PIDFILE ei löydy)" poistu 0 muu DAEMONPID = $ (kissa $ PIDFILE | tr -d '[: tyhjä:]') KILLCOUNT = 1 jos [! -e $ UPGRADEFILE]; sitten jos start-stop-daemon --stop - hiljainen $ SSD_ARGS; sitten # antaa kdm: n signaalinkäsittelijälle sekunnin hengähdystukeen. 1 muu log_action_cont_msg "ei käynnissä" fi, kun [$ KILLCOUNT -le 5]; do if still_running; tappaa sitten $ DAEMONPID muuten tauko fi-uni 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) tehty, jos vielä suoritetaan; sitten log_action_cont_msg "ei vastaa TERM-signaaliin (pid $ DAEMONPID)" muuten rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; status) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && exit 0 || poistua $?
;; *) echo "Käyttö: /etc/init.d/kdm {start|stop|restart|reload|force-reload|status}" exit 1 ;; esac exit 0
Tämä on mitä sanotulla tiedostolla on toisella tietokoneella, mutta en nähnyt sitä viime yönä, näytän sinulle toisen vaihtoehtoni

Sitten löysin ratkaisun luoda oma käynnistyskomentosarja, jota käytetään KDM: ssä tai muussa sovelluksessa, jonka haluamme käynnistää ja joka sisältää tämän:

#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-function tapaus "$ 1" aloituksessa | "") / usr / bin / kdm ;; stop) # Ei-op ;; *) echo "Käyttö: kdm [start | stop | restart]"> & 2 exit 3 ;; että C

KDM:n automaattiseen käynnistämiseen on tarpeen aktivoida kyseinen skripti, joten käytän siihen RCConfia . Siinä kaikki. Suosittelen kuitenkin alkuperäisen :n käyttöä.


Lisää ensisijaiseksi lähteeksi Googlessa