Vakar es no jauna pārinstalēju savu Debian Wheezy ar savu pielāgoto KDE 4.10 repozitoriju , un man jāsaka, ka, ja iepriekš tas darbojās labi, tagad tas darbojas daudz labāk.
Vienīgā problēma, kas man bija, bija ar KDM, kas acīmredzot ne visai labi instalējās, jo tas nevēlējās sākt automātiski, kaut kas piesaista manu uzmanību, jo es veicu to pašu instalēšanu, ar tām pašām krātuvēm otrā datorā un viss bija iet lieliski.
Meklējot problēmas cēloni, atklāju, ka fails /etc/init.d/kdm netika izveidots, kurā vajadzētu būt šādam:
#! / bin / sh -e ### SĀKUMA SĀKUMA INFO # Nodrošina: kdm # Obligāts sākums: $ local_fs $ remote_fs # Obligāts-Stop: $ local_fs $ remote_fs # Vajadzīgs sākt: konsoles ekrāns kbd acpid dbus hal krb5 kdc # Should-Stop: konsoles ekrāns kbd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Īss apraksts: KDE X displeja pārvaldnieks # Apraksts: KDM pārvalda X serveru kolekciju, kas var atrasties vietējā resursdatorā vai attālās iekārtās
### END INIT INFO # /etc/init.d/kdm: sāciet vai pārtrauciet X displeja pārvaldnieku # Skripts, kas sākotnēji nozagts no xdm pakotnes # # apraksts: K Display Manager # # importējiet LSB init funkcijas. / lib / lsb / init-functions # iestatiet lokalizāciju, ja [-r / etc / default / locale]; pēc tam. / etc / default / locale export LANG LANGUAGE fi # lai palaistu kdm, pat ja tas nav noklusējuma displeja pārvaldnieks, mainiet # HEED_DEFAULT_DISPLAY_MANAGER uz "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 / palaist / palaist / palaist UPGRADEFILE = / var / run / kdm.upgrade setup_config () {# parametri, kas atbalsta kdm pielāgošanu KDMRC = / etc / kde4 / kdm / kdmrc BACKGROUNDRC = / etc / kde4 / kdm / backgroundrc # ja konfigurāciju maina kdmtheme vai citi rīki , nedariet maču, ja grep -q "^ [[: space:]] * Theme = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; tad KDMOVERRIDEDIR = / etc / default / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdya = / kdya kdde4 / tēmas $ DAEMON || iziet no 0 # uncomment, ja vēlaties, lai automātiskā pieteikšanās būtu atkarīga no darbības līmeņa #test "$ runlevel" || {runlevel = `palaišanas līmenis`; runlevel = $ {runlevel # *}; } #test "$ runlevel" = 4 && ARG = -autologs || ARG = -noautolog # uncomment, ja savā slog žurnālā vēlaties iegūt daudz atkļūdošanas informācijas # ARG = "$ ARG -debug 255" # mēs izmantojam alternatīvu kdm galvenās konfigurācijas failu ARG = "$ ARG -config $ KDMCFG" # mēs ģenerējam kdm konfigurācijas faili genkdmconf --in $ KDMCFGDIR 1> / dev / null # mēs avots ignorē. run-parts kārto sarakstu paredzamā secībā, ja [-d "$ KDMOVERRIDEDIR"]; tad daļai $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c. "$ part" izdarīts fi # mēs atjauninām kdm konfigurācijas failus (tikai ignorētās vērtības) [-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 | ^ # \? Valoda =. * | Valoda = $ LANGUAGE |" $ KDMCFG, ja grep -q "^ [[: atstarpe:]] * Wallpaper = stripes.png" $ {BACKGROUNDRC}; tad [-n "$ WALLPAPER"] && [-e "$ WALLPAPER"] && sed -i "s | ^ # \? Wallpaper =. * | Wallpaper =` lasīšanas saite -f $ WALLPAPER` | " $ BACKGROUNDCFG fi # usetheme tagad ir ieslēgts pēc noklusējuma, tāpēc mums jābūt pārliecinātiem, ka motīvs nav nederīgs ...
sed -i "s|@@@ToBeReplacedByDesktopBase@@@|$DEFAULT_KDM_THEME|" ${KDMCFG} # automātiskās pieteikšanās ignorēšana ir noderīga tiešraides Debian vidē, ja [ -n "$AUTOLOGINUSER" ]; tad 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 } # Ja mēs jauninājām dēmonu, mēs nevaram izmantot --exec argumentu # start-stop-daemon, jo inode būs mainījies. Risks šeit ir tāds, ka # situācijā, kad dēmons ir miris, tā pid fails nav iztīrīts un # kāds cits process tagad darbojas ar šo pid, start-stop-daemon sūtīs # signālus nevainīgam procesam. Tomēr šis šķiet kā stūra gadījums.
# C'est la vie!
ja [-e $ UPGRADEFILE]; tad 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; tad patiess cits # ja dēmons nenoņem savu pidfailu, mēs rm -f $ PIDFILE $ UPGRADEFILE false fi; } gadījums "$ 1" sākumā) setup_config, ja [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_MANAGER_FILE)" = "$ DA; tad log_action_msg "Netiek palaists K Display Manager (kdm); tas nav noklusējuma displeja pārvaldnieks."
else log_daemon_msg "K Display Manager palaišana" "kdm" ja start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; tad log_end_msg 0 cits log_action_end_msg 1 "jau darbojas" fi fi ;; restartēt) /etc/init.d/kdm stop, ja [-f $ PIDFILE]; tad, ja vēl joprojām darbojas; tad izejiet no 1 fi fi /etc/init.d/kdm start ;; reload) log_action_begin_msg "Pārlādē K Display Manager konfigurāciju ..."
ja start-stop-dēmons --stop - 1. signāls - kluss $ SSD_ARGS; tad log_action_end_msg 0 cits log_action_end_msg 1 "kdm nedarbojas" fi ;; force-reload) /etc/init.d/kdm reload ;; stop) log_action_begin_msg "K Display Manager apturēšana: kdm" if [! -f $ PIDFILE]; tad log_action_end_msg 0 "nedarbojas ($ PIDFILE nav atrasts)" iziet 0 cits DAEMONPID = $ (cat $ PIDFILE | tr -d '[: blank:]') KILLCOUNT = 1 ja [! -e $ UPGRADEFILE]; tad, ja start-stop-daemon --stop - klusums $ SSD_ARGS; tad # dod kdm signāla apstrādātājam sekundi, lai atvilktu elpu. 1 log logs_cont_msg "nedarbojas" fi, kamēr [$ KILLCOUNT -le 5]; darīt, ja joprojām darbojas? pēc tam nogaliniet $ DAEMONPID, lai pārtrauktu miega režīmu 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) izdarīts, ja joprojām darbojas; tad log_action_cont_msg "nereaģē uz TERM signālu (pid $ DAEMONPID)" else rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; status) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && izeja 0 || iziet no $?
;; *) echo "Lietojums: /etc/init.d/kdm {start|stop|restart|reload|force-reload|status}" exit 1 ;; esac exit 0
Pēc tam atrastais risinājums bija izveidot savu startēšanas skriptu, kas tiek izmantots KDM vai jebkurai citai lietojumprogrammai, kuru mēs vēlamies sākt, un kas satur šo:
#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-function gadījums "$ 1" sākumā | "") / usr / bin / kdm ;; stop) # No-op ;; *) echo "Lietojums: kdm [start | stop | restart]"> & 2 izeja 3 ;; ka C
Lai automātiski palaistu KDM, ir jāaktivizē šis skripts, tāpēc es tam izmantoju RCConf . Un tas arī viss. Tomēr es iesaku izmantot oriģinālo