KDM'yi başlatmak için komut dosyası (başlamaması durumunda)

debianlight_kdm

Dün Debian Wheezy'yi özel KDE 4.10 deposuyla sıfırdan yeniden kurdum ve daha önce iyi çalışıyorsa, şimdi çok daha iyi çalıştığını söylemeliyim.

Sahip olduğum tek sorun, görünüşe göre hiç iyi yüklenmemiş olan KDM ile oldu, çünkü otomatik olarak başlamak istemiyordu, dikkatimi çeken bir şey, aynı kurulumu diğer PC'de aynı depolar ile yaptığım için ve her şey harika gidiyor.

Sorunun nedenini araştırırken, /etc/init.d/kdm dosyasının oluşturulmadığını keşfettim; bu dosyanın aşağıdaki içeriğe sahip olması gerekiyordu:

#! / bin / sh -e ### BEGIN INIT INFO # Şunları sağlar: kdm # Gerekli-Başlangıç: $ local_fs $ remote_fs # Required-Stop: $ local_fs $ remote_fs # Should-Start: konsol ekranı kbd acpid dbus hal krb5- kdc # Durmalı: konsol ekranı kbd # Varsayılan-Başlat: 2 3 4 5 # Varsayılan-Durdur: 0 1 6 # Kısa Açıklama: KDE için X görüntü yöneticisi # Açıklama: KDM, bir dizi X sunucusunu yönetir. yerel ana bilgisayarda veya uzak makinelerde olun.
### END INIT INFO # /etc/init.d/kdm: X görüntü yöneticisini başlatır veya durdurur # xdm paketinden orijinal olarak çalınan komut dosyası # # açıklama: K Görüntü Yöneticisi # # LSB başlatma işlevlerini içe aktarır. / lib / lsb / init-functions # [-r / etc / default / locale] ise yerel ayarı ayarlayın; sonra. / etc / default / locale export LANG LANGUAGE fi #, varsayılan görüntü yöneticisi olmasa bile kdm'yi başlatmak için # HEED_DEFAULT_DISPLAY_MANAGER'ı "false" olarak değiştirin.
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 () {# kdm özelleştirmesini desteklemek için parametreler KDMRC = / etc / kde4 / kdm / kdmrc BACKGROUNDRC = / etc / kde4 / kdm / backgroundrc # yapılandırma kdmtheme veya diğer araçlar tarafından değiştirilirse grep -q "^ [[: space:]] * Theme = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC}; sonra KDMOVERRIDEDIR = / etc / default / kdm.d KDMCFGDIR = / var / run / kdm KDMCFG = $ KDMCFGDIR / kdmrc BACKGROUNDCFG = $ KDMCFGDIR / backgroundrc DEFAULT_KDM_THEME = / kdmdm / usiya-apps / test / ariya-apps / share / apps / kdde4 $ DAEMON || çıkış 0 # uncomment, eğer otomatik oturum açmanın çalışma düzeyine bağlı olmasını istiyorsanız #test "$ runlevel" || {runlevel = `runlevel`; çalışma seviyesi = $ {çalışma seviyesi # *}; } #test "$ runlevel" = 4 && ARG = -autolog || ARG = -noautolog # uncomment, syslog'unuzda tonlarca hata ayıklama bilgisi istiyorsanız #ARG = "$ ARG -debug 255" # alternatif bir kdm ana yapılandırma dosyası kullanıyoruz ARG = "$ ARG -config $ KDMCFG" # kdm oluşturuyoruz yapılandırma dosyaları genkdmconf - içinde $ KDMCFGDIR 1> / dev / null # kaynak geçersiz kılmaları yaparız. run-parts listeyi tahmin edilebilir bir sırada sıralar, eğer [-d "$ KDMOVERRIDEDIR"]; sonra $ (run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c. "$ part" done fi # kdm yapılandırma dosyalarını güncelliyoruz (yalnızca geçersiz kılınan değerler) [-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 "$ TEMA"] && [-e "$ TEMA"] && sed -i "s | ^ # \? Tema =. * | Tema = $ TEMA |" $ KDMCFG [-n "$ LANGUAGE"] && sed -i "s | ^ # \? Dil =. * | Dil = $ DİL |" $ KDMCFG, grep -q "^ [[: boşluk:]] * Duvar kağıdı = stripes.png" $ {BACKGROUNDRC}; sonra [-n "$ DUVAR KAĞIDI"] && [-e "$ DUVAR KAĞIDI"] && sed -i "s | ^ # \? Duvar kağıdı =. * | Duvar kağıdı =` okuma bağlantısı -f $ DUVAR KAĞIDI` | " $ BACKGROUNDCFG fi # usetheme artık "varsayılan olarak" açık olduğundan, Temanın geçersiz olmadığından emin olmamız gerekiyor ...
sed -i "s|@@@ToBeReplacedByDesktopBase@@@|$DEFAULT_KDM_THEME|" ${KDMCFG} # canlı debian ortamı için otomatik oturum açma geçersiz kılmaları yararlıdır eğer [ -n "$AUTOLOGINUSER" ]; then 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 } # Eğer daemon'u yükselttiysek, inode değişmiş olacağından start-stop-daemon için --exec argümanını kullanamayız.  Buradaki risk, # daemon'un öldüğü, pid dosyasının temizlenmediği ve # başka bir işlemin o pid altında çalıştığı bir durumda, start-stop-daemon'un # masum bir işleme sinyaller göndermesidir.  Ancak bu, bir köşe vakası gibi görünüyor.
# C'est la vie!
eğer [-e $ UPGRADEFILE]; sonra 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; then true else # eğer daemon kendi pid dosyasını kaldırmazsa, rm -f $ PIDFILE $ UPGRADEFILE false fi; } durumda "$ 1" başlangıçta) setup_config if [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$ (cat $ DEFAULT_DISPLAY_MANAGER_FILE)"! = "$ DAEMON"]; then log_action_msg "K Display Manager (kdm) başlatılmıyor; varsayılan görüntü yöneticisi değil."
else log_daemon_msg "K Ekran Yöneticisini Başlatma" "kdm" eğer start-stop-daemon --start --quiet $ SSD_ARGS - $ ARG; sonra log_end_msg 0 yoksa log_action_end_msg 1 "zaten çalışıyor" fi ;; yeniden başlat) /etc/init.d/kdm dur ise [-f $ PIDFILE]; sonra hala çalışıyorsa; sonra 1 fi fi /etc/init.d/kdm startından çık ;; reload) log_action_begin_msg "K Display Manager yapılandırması yeniden yükleniyor ..."
eğer start-stop-daemon --stop --signal 1 --quiet $ SSD_ARGS; sonra log_action_end_msg 0 else log_action_end_msg 1 "kdm çalışmıyor" fi ;; zorla yeniden yükle) /etc/init.d/kdm yeniden yükle ;; stop) log_action_begin_msg "K Ekran Yöneticisi durduruluyor: kdm" eğer [! -f $ PIDFILE]; sonra log_action_end_msg 0 "çalışmıyor ($ PIDFILE bulunamadı)" çıkış 0, başka DAEMONPID = $ (cat $ PIDFILE | tr -d '[: boşluk:]') KILLCOUNT = 1 ise [! -e $ UPGRADEFILE]; o zaman start-stop-daemon --stop --quiet ise $ SSD_ARGS; sonra # kdm'nin sinyal işleyicisine nefesini tutması için bir saniye verin 1 aksi takdirde log_action_cont_msg "çalışmıyor" fi fi iken [$ KILLCOUNT -le 5]; hala çalışıyorsa yap; sonra $ DAEMONPID'i öldür, yoksa fi uykuyu kes 1 KILLCOUNT = $ (($ KILLCOUNT + 1)) hala_running ise yapılır; sonra log_action_cont_msg "TERM sinyaline yanıt vermiyor (pid $ DAEMONPID)" else rm -f $ UPGRADEFILE fi fi log_action_end_msg 0 ;; durum) status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && çıkış 0 || çıkış $?
;; *) echo "Kullanım: /etc/init.d/kdm {başlat|durdur|yeniden başlat|yeniden yükle|yeniden yüklemeye zorla|durum}" çıkış 1 ;; esac çıkış 0
Dosyanın diğer bilgisayarda olduğu söylenen budur, ancak dün gece göremedim, size diğer alternatifimi gösterdim

O zaman bulduğum çözüm, KDM veya başlatmak istediğimiz diğer herhangi bir uygulama için kullanılan ve şunu içeren kendi başlangıç ​​komut dosyamı oluşturmaktı:

#! / bin / sh PATH = / sbin: / bin. /lib/init/vars.sh. / lib / lsb / init-functions durumu "$ 1" başlangıçta | "") / usr / bin / kdm ;; stop) # İşlem yok ;; *) echo "Kullanım: kdm [başlat | durdur | yeniden başlat]"> & 2 çıkış 3 ;; bu C

Şimdi, KDM'yi otomatik olarak başlatmak için bu betiği etkinleştirmek gerekiyor, bu yüzden bunun için RCConf kullanıyorum . Ve hepsi bu. Ancak, orijinalini kullanmanızı tavsiye ederim 


Google'da tercih edilen kaynak olarak ekleyin.