web-dev-qa-db-ja.com

起動時にログインが20秒間ハングする理由を特定するにはどうすればよいですか?

私は何かをしました(何を思い出せません)。ログインすると、詳細を入力した直後に、マウスカーソルで背景が表示され、何も起こりません。次に、約20秒(おそらくタイムアウト)後、ハードドライブがロードを続け、デスクトップを取得します。

bootchart2をインストールしてみました:

apt-get install bootchart2 pybootchartgui

私は彼らの指示に従いました ここ そして次の行を/etc/default/grubに追加しました:

initcall_debug printk.time=y quiet init=/sbin/bootchartd ...

update-grubを実行すると、次のエラーメッセージが表示されます。

/usr/sbin/grub-mkconfig: 12: /etc/default/grub: initcall_debug: not found

3
quant

このタイプの問題は、デバッグが難しい場合があります。手始めに、ネットワークまたはHDDアクセスの問題のいずれかにそれを分離することは役に立ちます。

これは、犯人が残るまで潜在的な原因を排除することによって行われます。

バックグラウンド

始める前に、インストールが必要になる可能性のあるいくつかのアプリケーションを利用します。これを行う方法については詳しく説明しません。アプリケーションのインストール方法を知っていることを前提としており、特定の手順を実行する必要がある場合にインストールします。

また、システムのコンソールを利用します。アクセスするには、次のようにします。 CtrlAltF2。同様のキーボードコンボを使用して、グラフィカルデスクトップがあるプライマリディスプレイに戻すことができます。それがこの重要な組み合わせです。 CtrlAltF1

ネットワーキング

アプリnethogsを使用することから始めるのが良いでしょう。ネットワークにアクセスしようとしているアプリケーションが表示されるので、私はそれを使用するのが好きです。おそらく、これらのアプリケーションの1つがハングを引き起こしています。

nethogsを使用する前に、システムで使用されているネットワークインターフェイスを特定する必要があります。これが私のラップトップにあるものです:

$ ip -o link show | cut -d" " -f2
lo:
em1:
wlp3s0:
virbr0:
virbr0-nic:
vboxnet0:

私のワイヤレスはwplp3s0。イーサネットはem1。 WiFiから始めましょう。

$ Sudo nethogs wlp3s0

このタイプの出力になります。

NetHogs version 0.8.0

  PID USER     PROGRAM                      DEV        SENT      RECEIVED       
979   saml     ../bin/google-chrome-stable  wlp3s0     1.943       2.547 KB/sec
2376  saml     /usr/bin/Pidgin              wlp3s0     0.000       0.000 KB/sec
21789 saml     ssh                          wlp3s0     0.000       0.000 KB/sec
9618  saml     ssh                          wlp3s0     0.000       0.000 KB/sec
10267 saml     ssh                          wlp3s0     0.000       0.000 KB/sec
?     root     unknown TCP                             0.000       0.000 KB/sec

  TOTAL                                                1.943       2.547 KB/sec 

データを受信せずに大量のSENTデータを持っていることに偏っているように見えるいくつかのPIDに問題を切り分けたら、さらに深く掘り下げてstraceを使用する必要があります。このネットワークアクセスのどの側面がハングアップしているかを確認してください。これを実現するには、次のようにstraceを使用できます。

$ strace -s 2000 -o somepid.log -p <PID>

どこ <PID>は、nethogsから識別されるプロセスIDの1つです。

ディスクI/O

問題がネットワークにあるのではないと判断した場合、次に調査する場所は、プロセスでHDD​​へのアクセスに問題があり、何らかの方法でブロックされているかどうかを確認することです。

これはデバッグが難しい場合がありますが、lsofstracefatraceなどのツールを使用して検索をさらに絞り込むことができます。

他に何か?

何かが疑わしいかどうかをかなり迅速に判断できる場所の1つは、ログイン時にアプリケーションの起動を無効にすることです。これをGNOMEで行うには、次のダイアログを起動します。gnome-session-properties

ss of dialog

このダイアログ内で、疑わしいと思われるすべてのアプリケーションを無効にし、再起動を開始して問題が解決するかどうかを確認します。

4
slm