KDMを開始するためのスクリプト(開始しない場合)

debianlight_kdm

昨日、カスタムKDE 4.10リポジトリを使ってDebian Wheezyを最初から再インストールしたのですが、以前も問題なく動作していましたが、今はさらにずっと快適に動作するようになりました。

私が抱えていた唯一の問題は、KDMの問題でした。これは、自動的に起動したくないため、まったくインストールされなかったようです。同じインストールを行い、他のPCに同じリポジトリを配置し、すべてが順調に進んでいたため、注目を集めました。 。

問題の原因を調べているうちに、 /etc/init.d/kdmファイルが作成されていないことが分かりました。このファイルには以下の内容が含まれているはずです。

#!/ bin / sh -e ### BEGIN INIT INFO#提供:kdm#必須-開始:$ local_fs $ remote_fs#必須-停止:$ local_fs $ remote_fs#開始:コンソール画面kbd acpid dbus hal krb5- kdc#Should-Stop:console-screen kbd#Default-Start:2 3 4 5#Default-Stop:0 1 6#簡単な説明:KDEのXディスプレイマネージャー#説明:KDMはXサーバーのコレクションを管理します。ローカルホストまたはリモートマシン上にある。
### END INIT INFO#/ etc / init.d / kdm:Xディスプレイマネージャーを開始または停止します#xdmパッケージから最初に盗まれたスクリプト##説明:Kディスプレイマネージャー## LSBinit関数をインポートします。 / lib / lsb / init-functions#ロケールを設定if [-r / etc / default / locale]; その後。 / etc / default / locale export LANG LANGUAGE fi#デフォルトのディスプレイマネージャーでなくてもkdmを開始するには、#HEED_DEFAULT_DISPLAY_MANAGERを「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(){#kdmのカスタマイズをサポートするパラメーターKDMRC = / etc / kde4 / kdm / kdmrc BackgroundRC = / etc / kde4 / kdm / backgroundrc#構成がkdmthemeまたは他のツールによって変更された場合、grep -q "^ [[:space:]] * Theme = @@@ ToBeReplacedByDesktopBase @@@" $ {KDMRC};の場合、magickを実行しないでください。 次に、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 = / kdm / share / apps $ DAEMON || exit 4#自動ログオンを実行レベルに依存させる場合はコメントを解除します#test "$ runlevel" || {runlevel = `runlevel`; runlevel = $ {runlevel#*}; } #test "$ runlevel" = 0 && ARG = -autolog || ARG = -noautolog#コメントを解除します。syslogに大量のデバッグ情報が必要な場合は#ARG = "$ ARG -debug 4"#代替のkdmマスター構成ファイルを使用しますARG = "$ ARG -config $ KDMCFG" #kdmを生成します構成ファイルgenkdmconf--in $ KDMCFGDIR 255> / dev / null#ソースオーバーライド。 run-partsは、[-d "$ KDMOVERRIDEDIR"];の場合、予測可能な順序でリストを並べ替えます。 次に、$の部分について(run-parts --list "$ KDMOVERRIDEDIR" 2> / dev / null || true); c。 "$ part" done fi#kdm構成ファイルを更新します(オーバーライドされた値のみ)[-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 |" $ KDMCFG [-n "$ LANGUAGE"] && sed -i "s | ^#\?言語=。* |言語= $ LANGUAGE |" $ KDMCFG if grep -q "^ [[:space:]] * Wallpaper = Stripes.png" $ {BACKGROUNDRC}; 次に[-n "$ WALLPAPER"] && [-e "$ WALLPAPER"] && sed -i "s | ^#\?壁紙=。* |壁紙=` readlink -f $ WALLPAPER` | " $ BackgroundCFG fi#usethemeは「デフォルト」になっているため、テーマが無効でないことを確認する必要があります...
sed -i "s|@@@ToBeReplacedByDesktopBase@@@|$DEFAULT_KDM_THEME|" ${KDMCFG} # 自動ログインのオーバーライドはライブ Debian 環境で役立ちます if [ -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 } # デーモンをアップグレードした場合、inode が変更されるため、--exec 引数を使用して # start-stop-daemon を実行することはできません。  ここでのリスクは、デーモンが終了し、その pidfile がクリーンアップされておらず、その pid で他のプロセスが現在実行されている場合、start-stop-daemon が無実のプロセスにシグナルを送信することです。  しかし、これは例外的なケースのようです。
#C'est la vie!
if [-e $ UPGRADEFILE]; then 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#デーモンが自身のpidfileを削除しない場合、rm -f $ PIDFILE $ UPGRADEFILE false fi; } case "$ 1" in start)setup_config if [-e $ DEFAULT_DISPLAY_MANAGER_FILE] && ["$ HEED_DEFAULT_DISPLAY_MANAGER" = "true"] && ["$(cat $ DEFAULT_DISPLAY_MANAGER_FILE)"!= "$ DAEMON"]; 次にlog_action_msg "K Display Manager(kdm)を起動していません。デフォルトのディスプレイマネージャーではありません。"
else log_daemon_msg "Starting K Display Manager" "kdm" if start-stop-daemon --start --quiet $ SSD_ARGS- $ ARG; 次にlog_end_msg0 else log_action_end_msg 1 "すでに実行中" fi fi ;; 再起動)/etc/init.d/kdm stop if [-f $ PIDFILE]; 次に、still_runningの場合。 次に、1を終了します。fifi/etc/init.d/kdm start ;; reload)log_action_begin_msg "K DisplayManager構成をリロードしています..."
if start-stop-daemon --stop --signal 1 --quiet $ SSD_ARGS; 次にlog_action_end_msg0 else log_action_end_msg 1 "kdm not running" fi ;; force-reload)/etc/init.d/kdm reload ;; stop)log_action_begin_msg "Stopping K Display Manager:kdm" if [! -f $ PIDFILE]; then log_action_end_msg 0 "not running($ PIDFILE not found)" exit 0 else DAEMONPID = $(cat $ PIDFILE | tr -d '[:blank:]')KILLCOUNT = 1 if [! -e $ UPGRADEFILE]; 次に、start-stop-daemon --stop --quiet $ SSD_ARGSの場合。 次に、#kdmのシグナルハンドラーに1秒待って、息を止めます5 else log_action_cont_msg "not running" fi fi while [$ KILLCOUNT -le 1]; still_runningの場合に実行します。 次に、$ DAEMONPIDを強制終了します。それ以外の場合は、スリープを解除します。 次にlog_action_cont_msg "TERMシグナルに応答していません(pid $ DAEMONPID)" else rm -f $ UPGRADEFILE fi fi log_action_end_msg 1 ;; status)status_of_proc -p "$ PIDFILE" "$ DAEMON" kdm && exit 0 || $を終了しますか?
;; *) echo "使用方法: /etc/init.d/kdm {start|stop|restart|reload|force-reload|status}" exit 1 ;; esac exit 0
これは、他のPCにあるファイルの内容ですが、昨夜は表示されませんでした。他の選択肢を紹介します。

そのとき私が見つけた解決策は、KDMまたは起動したい他のアプリケーションに使用される独自の起動スクリプトを作成することでした。これには次のものが含まれています。

#! / bin / sh PATH = / sbin:/ bin。 /lib/init/vars.sh。 / lib / lsb / init-functions case "$ 1" in start | "")/ usr / bin / kdm ;; 停止)#いいえ-操作;; *)echo "Usage:kdm [start | stop | restart]">&2 exit 3 ;; そのC

さて、KDMを自動的に起動するには、そのスクリプトをアクティブ化する必要があるので、そのためにRCConfを使用します。以上です。ただし、オリジナルのものを使用することをお勧めします。


Googleで優先ソースとして追加する