Debian SqueezeAMD64サーバーを実行しています。起動後のターゲットランレベルはランレベル2で、rsyslogd、cron、sshdなどが含まれますが、dovecot、postfix、Apache2などは含まれません。システムはいくつかの症状でランレベル2に到達できません。
そして、それは常に失敗するものです。 RAMはテスト済みですが、dmesgは問題を示していません。手がかりはありません。
更新 :(短縮)ランレベル1で呼び出されたrsyslogd -c4-dからの出力
rsyslogd 4.6.4起動、互換モード4、モジュールパス ''呼び出し元がオブジェクト 'net'を要求しましたが、見つかりません(iRet -3003)モジュール 'lmnet'をロードするように要求されましたモジュール '/user/lib/rsyslog/lmnet.so'モジュールをロードしますロードされているタイプ2のconf.cが「lmnet」の参照を要求しました。refcount1rsylogランタイムが初期化されました。バージョン4.6.4、現在のユーザー1syslogd.cが「lmnet」の参照を要求しました。refcountnow2
その後、Strg + Cでrsyslogdを強制終了できます。ただし、/ var/logには、構成されたログファイルは表示されません。
pdate2:@ DerfKのおかげで、まだ手がかりがありませんが、少なくとも問題を絞り込みました。私は現在、/etc/init.d/Apache2 stop
(もちろん、Apache2を実行せずに)でテストしていますが、これもハングし、さらに明らかな失敗のように見えます。
いくつかのテストの結果、1行のファイルであることがわかりました。
/ usr/sbin/Apache2ctl configtest>/dev/null 2>&1
インタラクティブシェルで実行された同じ行が機能している間、ハングします。私はこの線をさらに減らすことができませんでした。 e。ハングを再現するには、すべてのパーツ、ストリームリダイレクト、およびコマンド自体が必要です。 @DerfKはまた、私にstrace
を指摘しました。これは、ここにどのようなハングがあるかについての浅いヒントを与えました。
wait4(-1
initスクリプト用futex(0xsomepointer, FUTEX_WAIT_PRIVATE, 2, NULL
for rsyslogd
/Apache2
バイナリはinitスクリプトによって呼び出されますシステムは2011年の秋に私のホスティング業者によってDebianLennyとしてインストールされました。私はすぐにシステムをSqueezeにアップグレードし、Squeezeで最新の状態に保ちました。しかし、大きな変化はありませんでした。私は以前にシステムを再起動しようとしたことがないと思います。
pdate:問題が見つかりました。私の/etc/nsswitch.confは、ホストルックアップバックアップとしてldapを指定しましたが、これは起動時に使用できません。 DNSに依存すると、起動の問題が修正されるだけです。
これは、いくつかの基本的なネットワークサービスが開始されていないように私には聞こえます。 /etc/rc2.d
の内容を/etc/rc3.d
roと比較して、ランレベル3がランレベル2が開始しないものを開始するかどうかを確認します(通常は開始しますが、通常は基本的なものではありません)。
DebianSqueezeはデフォルトで同時起動を行います。これは、起動時に複数のinitスクリプトが同時に実行されていることを意味します。これを無効にして、一度に1つのスクリプトのみが実行されるようにして、失敗しているステップを正確に見つけることができます。 initスクリプトは毎回同じ順序で実行されるため、もっと深刻な問題でない限り、毎回同じ順序で失敗するはずです。
同時起動を無効にするには、CONCURRENCY=none
を/etc/default/rcS
に追加します。行を削除してデフォルトに戻します。