Script untuk memulai KDM (jika tidak)

debianlight_kdm

Kemarin saya menginstal ulang Debian Wheezy saya dari awal dengan repositori KDE 4.10 kustom saya dan harus saya akui bahwa jika sebelumnya sudah berfungsi dengan baik, sekarang jauh lebih baik.

Satu-satunya masalah yang saya hadapi adalah dengan KDM, yang ternyata tidak terinstal dengan baik sama sekali, karena tidak ingin memulai secara otomatis, sesuatu yang menarik perhatian saya karena saya melakukan instalasi yang sama, dengan repositori yang sama di PC lain dan semuanya berjalan lancar. berjalan dengan baik.

Saat mencari penyebab masalah, saya menemukan bahwa file /etc/init.d/kdm tidak dibuat, padahal seharusnya berisi hal-hal berikut:

#! / bin / sh -e ### BEGIN INIT INFO # Menyediakan: kdm # Diperlukan-Mulai: $ local_fs $ remote_fs # Diperlukan-Berhenti: $ local_fs $ remote_fs # Harus-Mulai: layar-konsol kbd acpid dbus hal krb5- kdc # Should-Stop: layar-konsol kbd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Deskripsi Singkat: Manajer tampilan X untuk KDE # Keterangan: KDM mengatur kumpulan server X, yang mungkin berada di host lokal atau mesin jarak jauh.
### INFO INIT AKHIR # /etc/init.d/kdm: memulai atau menghentikan manajer tampilan X # Skrip aslinya dicuri dari paket xdm # # deskripsi: K Manajer Tampilan # # mengimpor fungsi init LSB. / lib / lsb / init-functions # setel lokal jika [-r / etc / default / locale]; kemudian. / etc / default / locale export LANG LANGUAGE fi # untuk memulai kdm meskipun ini bukan manajer tampilan default, ubah # HEED_DEFAULT_DISPLAY_MANAGER menjadi "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.pid UPGRADEFILE = / var / run / kdm.upgrade setup_config () {# parameter untuk mendukung kustomisasi kdm KDMRC = / etc / kde4 / kdm / kdmrc BACKGROUNDRC = / etc / kde4 / kdm / backgroundrc # jika konfigurasi diubah oleh kdmtheme atau alat lainnya , jangan lakukan magick if grep -q "^ [[: space:]] * Theme = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; lalu KDMOVERRIDEDIR = / etc / default / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdmx / ariya-apps / share / share / apps / kdde4 $ DAEMON || keluar 0 # hapus komentar, jika Anda ingin logon otomatis menjadi bergantung pada runlevel #test "$ runlevel" || {runlevel = `runlevel`; runlevel = $ {runlevel # *}; } #test "$ runlevel" = 4 && ARG = -autolog || ARG = -noautolog # hapus komentar, jika Anda ingin banyak info debug di syslog Anda #ARG = "$ ARG -debug 255" # kami menggunakan file konfigurasi master kdm alternatif ARG = "$ ARG -config $ KDMCFG" # kami membuat kdm file konfigurasi genkdmconf --di $ KDMCFGDIR 1> / dev / null # kita mengganti sumber. run-parts mengurutkan daftar dalam urutan yang dapat diprediksi if [-d "$ KDMOVERRIDEDIR"]; kemudian untuk bagian dalam $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c. "$ part" selesai # kita memperbarui file konfigurasi kdm (hanya nilai yang diganti) [-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 | ^ # \? Tema =. * | Tema = $ TEMA |" $ KDMCFG [-n "$ LANGUAGE"] && sed -i "s | ^ # \? Bahasa =. * | Bahasa = $ LANGUAGE |" $ KDMCFG if grep -q "^ [[: spasi:]] * Wallpaper = stripes.png" $ {BACKGROUNDRC}; lalu [-n "$ WALLPAPER"] && [-e "$ WALLPAPER"] && sed -i "s | ^ # \? Wallpaper =. * | Wallpaper =` readlink -f $ WALLPAPER` | " $ BACKGROUNDCFG fi # usetheme sekarang aktif "secara default" jadi kita perlu memastikan Tema tidak valid ...
sed -i "s|@@@ToBeReplacedByDesktopBase@@@|$DEFAULT_KDM_THEME|" ${KDMCFG} # penggantian autologin berguna untuk lingkungan Debian langsung jika [ -n "$AUTOLOGINUSER" ]; maka 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 } # Jika kita meng-upgrade daemon, kita tidak dapat menggunakan argumen --exec untuk # start-stop-daemon karena inodenya akan berubah.  Risikonya di sini adalah bahwa # dalam situasi di mana daemon mati, pidfile-nya tidak dibersihkan, dan # beberapa proses lain sekarang berjalan di bawah pid tersebut, start-stop-daemon akan mengirimkan # sinyal ke proses yang tidak bersalah.  Akan tetapi, ini tampaknya seperti kasus khusus.
# C'est la vie!
jika [-e $ UPGRADEFILE]; lalu 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; lalu true else # jika daemon tidak menghapus pidfile-nya sendiri, kita akan rm -f $ PIDFILE $ UPGRADEFILE false fi; } huruf "$ 1" di awal) setup_config jika [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_MANAGER_FILE)"! = "$ DAEMON"]; lalu log_action_msg "Tidak memulai K Display Manager (kdm); ini bukan manajer tampilan default."
else log_daemon_msg "Memulai K Display Manager" "kdm" if start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; lalu log_end_msg 0 lagi log_action_end_msg 1 "sudah berjalan" fi fi ;; restart) /etc/init.d/kdm stop jika [-f $ PIDFILE]; lalu jika still_running; lalu keluar dari 1 fi fi /etc/init.d/kdm start ;; reload) log_action_begin_msg "Memuat ulang K konfigurasi Display Manager ..."
jika start-stop-daemon --stop --signal 1 --quiet $ SSD_ARGS; lalu log_action_end_msg 0 else log_action_end_msg 1 "kdm not running" fi ;; muat ulang paksa) /etc/init.d/kdm muat ulang ;; stop) log_action_begin_msg "Menghentikan K Pengelola Tampilan: kdm" if [! -f $ PIDFILE]; lalu log_action_end_msg 0 "tidak berjalan ($ PIDFILE tidak ditemukan)" exit 0 else DAEMONPID = $ (cat $ PIDFILE | tr -d '[: blank:]') KILLCOUNT = 1 if [! -e $ UPGRADEFILE]; lalu jika start-stop-daemon --stop --quiet $ SSD_ARGS; lalu # beri waktu penangan sinyal kdm untuk mengatur napasnya agar tertidur 1 lagi log_action_cont_msg "tidak berjalan" fi sementara [$ KILLCOUNT -le 5]; lakukan jika still_running; lalu bunuh $ DAEMONPID jika tidak istirahat 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) selesai jika still_running; lalu log_action_cont_msg "tidak menanggapi sinyal TERM (pid $ DAEMONPID)" lain rm -f $ UPGRADEFILE fi log_action_end_msg 0 ;; status) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && exit 0 || keluar $?
;; *) echo "Penggunaan: /etc/init.d/kdm {mulai|hentikan|mulai ulang|muat ulang|paksa-muat ulang|status}" keluar 1 ;; esac keluar 0
Ini adalah apa yang dikatakan file di PC lain, tetapi saya tidak bisa melihatnya tadi malam, saya tunjukkan alternatif saya yang lain

Solusi yang saya temukan kemudian adalah membuat skrip startup saya sendiri, yang digunakan untuk KDM atau aplikasi lain yang ingin kita mulai, yang berisi ini:

#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-functions case "$ 1" di awal | "") / usr / bin / kdm ;; berhenti) # Tidak-op ;; *) echo "Penggunaan: kdm [start | stop | restart]"> & 2 exit 3 ;; itu C

Nah, untuk menjalankan KDM secara otomatis, perlu mengaktifkan skrip tersebut, jadi saya menggunakan RCConf untuk itu. Dan itu saja. Namun, saya sarankan menggunakan yang asli 


Tambahkan sebagai sumber pilihan di Google