再起動中にsystemdがハングするのはなぜですか?


13

1回10回、systemdは再起動中にハングします。理由がわかりません。問題を解決するために何/どこを見る必要がありますか?systemd v196を使用していますが、バージョン198以上にアップグレードすることはできません。後者には、最新のカーネル(cgroupをサポート)が必要であり、顧客の要件によって更新できません。この動作の理由を発見し、systemdにシステムを無条件で再起動させる合理的な方法があるのだろうか。

このリンクは役に立たないことに注意してください:http : //freedesktop.org/wiki/Software/systemd/Debugging/#index2h1

あなたがそこで読むことができるように:

シャットダウンが終了しない

数分待っても通常の再起動または電源オフが終了しない場合、上記のシャットダウンログを作成する方法は役に立たず、他の方法を使用してログを取得する必要があります。ブートの問題のデバッグに役立つ2つのオプションは、シャットダウンの問題にも使用できます。

use a serial console
use a debug shell - not only is it available from early boot, it also stays active until late shutdown.

私はシリアルコンソールを使用していますが、何らかの理由で、ethインターフェースがアップまたはアップされているのでログインできます(再起動ステップ中に切断が発生した後)。

理由はわかりません。

# cat /etc/systemd/system/
basic.target.wants/                          getty.target.wants/                          multi-user.target.wants/                     sysinit.target.wants/                        
dbus-org.freedesktop.NetworkManager.service  local-fs-pre.target.wants/                   sockets.target.wants/                        syslog.service                               
display-manager.service                      local-fs.target.wants/                       swap.target

swap.targetに注意してください。そこにありますが、スワップパーティションはまったく使用していません。スワップをマスクしようとしましたが、ハングの問題が残ります。コンソールの最後の行は次のとおりです。

[OK] Stopped target shutdown.

編集:私が言ったように、私はeth経由でssh経由で再ログインすることができます。

次に、2つのログを表示します。最初のログはリブート/シャットダウンがハングしたときに発生し、2番目のログはリブートが成功したときです。

ハングした場合、出力は常に次のようになります(完全ログ)。

[  OK  ] Stopped Network Time Service (one-shot ntpdate mode).
         Stopping Modem and VPN connections autoconnect...
         Stopping Login Service...
         Stopping LSB: Avahi mDNS/DNS-SD Daemon...
[  OK  ] Stopped Monitoring free system resources.
[  OK  ] Stopped Monitoring dropbear socket.
[  OK  ] Stopped Login Service.
[  OK  ] Stopped Modem and VPN c[  OK  ] Stopped Getty on tty1.
[  OK  ] Stopped Serial Getty on ttyO0.
[  OK  ] Unmounted /var/lib/opkg.
[  OK  ] Stopped Network Manager.
[  OK  ] Stopped LSB: Avahi mDNS/DNS-SD Daemon.
         Stopping D-Bus System Message Bus...
[  OK  ] Stopped target Remote File Systems.
[  OK  ] Stopped Suspend manager.
         Stopping X Server...
[  OK  ] Stopped X Server.
         Stopping System Logging Service...
[  OK  ] Stopped System Logging Service.
[   77.580000] g_ether gadget: using random self ethernet address
[   77.580000] g_ether gadget: using random host ethernet address
[   77.590000] usb0: MAC 6e:0d:de:b0:33:4f
[   77.590000] usb0: HOST MAC 62:7a:81:02:f3:ff
[   77.600000] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[   77.600000] g_ether gadget: g_ether ready
[   77.610000] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
[   77.610000] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 2
[   77.620000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[   77.630000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   77.640000] usb usb2: Product: MUSB HDRC host driver
[   77.640000] usb usb2: Manufacturer: Linux 2.6.37 musb-hcd
[   77.650000] usb usb2: SerialNumber: musb-hdrc.0
[   77.650000] hub 2-0:1.0: USB hub found
[   77.660000] hub 2-0:1.0: 1 port detected
[   77.690000] ADDRCONF(NETDEV_UP): usb0: link is not ready
[  OK  ] Stopped target Reboot.
[  OK  ] Stopped Reboot.
[  OK  ] Stopped target Unmount All Filesystems.
[  OK  ] Stopped target Shutdown.
[   78.330000] <46>systemd-journald[328]: Received SIGUSR1
<hang>

通常の再起動:

         Unmounting /var/lib/opkg...
[  OK  ] Stopped target Network.
         Stopping SSH Per-Connection Server...
[  OK  ] Stopped target Graphical Interface.
[  OK  ] Stopped target Multi-User.
         Stopping Monitoring free system resources...
         Stopping Monitoring dropbear socket...
         Stopping Network Time Service (one-shot ntpdate mode)...
[  OK  ] Stopped Network Time Service (one-shot ntpdate mode).
         Stopping Modem and VPN connections autoconnect...
         Stopping Login Service...
         Stopping LSB: Avahi mDNS/DNS-SD Daemon...
[  OK  ] Stopped Monitoring free system resources.
[  OK  ] Stopped Monitoring dropbear socket.
[  OK  ] Stopped Login Service.
[  OK  ] Unmounted /var/lib/opkg.
         Stopping Network Manager...
[  OK  ] Stopped Getty on tty1.
[  OK  ] Stopped Network Manager.
[  OK  ] Stopped Serial Getty on ttyO0.
[  OK  ] Stopped Suspend manager.
[  OK  ] Stopped LSB: Avahi mDNS/DNS-SD Daemon.
         Stopping D-Bus System Message Bus...
         Stopping X Server...
         Stopping Permit User Sessions...
[  OK  ] Stopped Permit User Sessions.
[  OK  ] Stopped target Remote File Systems.
[  OK  ] Stopped X Server.
[  OK  ] Stopped D-Bus System Message Bus.
         Stopping System Logging Service...
[  OK  ] Stopped System Logging Service.
[  OK  ] Stopped target Basic System.
[  OK  ] Stopped target Sockets.
[  OK  ] Closed dropbear.socket.
[  OK  ] Closed D-Bus System Message Bus Socket.
[  OK  ] Stopped target System Initialization.
         Stopping Import configuration from SD card...
[  OK  ] Stopped Import configuration from SD card.
         Stopping Load Kernel Modules...
         Stopping Apply Kernel Variables...
[  OK  ] Stopped Apply Kernel Variables.
[  OK  ] Stopped target Local File Systems.
         Unmounting /var...
         Unmounting /tmp...
[  OK  ] Closed Syslog Socket.
[  OK  ] Failed unmounting /var.
[  OK  ] Unmounted /tmp.
[  OK  ] Stopped Load Kernel Modules.
[  OK  ] Reached target Unmount All Filesystems.
[  OK  ] Stopped target Local File Systems (Pre).
         Stopping Remount Root and Kernel File Systems...
[  OK  ] Stopped Remount Root and Kernel File Systems.
[  OK  ] Reached target Shutdown.
[   52.340000] omap_wdt: Unexpected close, not stopping!
Sending SIGTERM to remaining processes...
[   52.490000] <46>systemd-journald[335]: Received SIGTERM
Sending SIGKILL to remaining processes...
Unmounting file systems.
Unmounting /sys/fs/fuse/connections.
Unmounting /var.
All filesystems unmounted.
Deactivating swaps.
All swaps deactivated.

更新:

いくつかの調査とデバッグの後、シャットダウンの中断の理由を発見しましたが、まだ解決できません。何らかの理由で、シャットダウンが完了する前にカスタムサービスの1つが開始されるため、シャットダウン手順がハングします。それはハングの1つのケースです。別の種類のハングアップは、シャットダウンが中断されず、ある時点で停止する場合です。このため、すべての競合やその他の可能性のあるハングを一度に1つずつ解決する前に、ハードウェアウォッチドッグを無条件にアクティブ化します。systemdを介してこれを行うには、RuntimeWatchdogSecとShutdownWatchdogSecを個別にまたは一緒に有効にしてテストしました。残念ながら、彼らは助けにはなりませんでした。ソースコードを見ると、

ハマった。私はあなたを求めることはどちらかへの道を見つけることです:1.ウォッチドッグは有効になっている無条件少なくともシャットダウンが検出された2を開始し、簡単な方法ですべての紛争を解決するためのポイントからスタート

最初の解決策が推奨されます。


ハングアップする途中ですか?システムで有効になっているサービスを教えてください。カスタムメイドのものはありますか?systemdがハングするとどのように結論付けましたか?
MattBianco

@MattBianco質問を編集しました。詳細情報があります。
マーティン

最初のログと2番目のログの間に同じ行が表示されないのはなぜですか?彼らはどこで見ることができれば、私はより多くの助けを提供することができるだろう始める異なること。
BenjiWiebe

@BenjiWiebeあなたは正しいです。質問をもう一度編集します
マーティン

journalctlをルートとして使用し、systemdジャーナルでタイムアウト、障害、依存関係の障害を探してください。
harrymc 14年

回答:


5

私は解決策を提案しようと思います:追加してみてください

  Before=basic.target

/usr/lib/systemd/system/dbus.serviceに。

あなたのログで、Arch Linuxフォーラムで少し前に読んだ事故を思い出させる奇妙なことに驚いています。このシステムは再起動時にハングします。このソリューションは、停止した後にd-busと通信しようとするサービスによってハングが発生するという理由で、上記のように提供されました。

そのため、basic.targetの前に順序付けすることにより、basic.targetに到達する前に開始するだけでなく、シャットダウン中にbasic.targetが停止するまでその状態を維持します。

あなたには不健康なログ、我々はそれを適切に停止している間、基本的なシステムは、停止されていないという事実に見健全なログ。

これが機能しない場合、およびアップグレードできないことを考慮して、ダウングレードを検討しましたか?


1
ありがとう、私はあなたの解決策を試してみます。systemdは設計上バグがあるようで、古き良きSysVの代替品を検討しました。
マーティン14年

この変更を適用した後、ブート時にsystemdからこれを取得します:注文サイクルが見つかりました、D-Busシステムメッセージバスをスキップします。何か案が?
マーティン14年

@Martin 1:別々のパーティションに/と/ usrがありますか?2)/etc/init.dにたくさんのものがありますか?または/etc/rc.dにありますか?
MariusMatutiae 14年

1
これはUbuntuの16.04、ファイルがでた上で素晴らしい作品/usr/lib/systemd/user/dbus.serviceの下[Unit]のセクション
アンワル・

3

shutdown.targetシャットダウンプロセスの開始時に自動的にそれらを停止するために、デフォルトで他のすべてのユニットと競合します。これは他の方法でも機能shutdown.targetします。別のユニットが起動すると、停止します。したがって、問題は、シャットダウン中に何かが原因で何かが開始され、シャットダウンプロセスが上書きされることです。

これはsystemd v198で修正されているはずであり、シャットダウンジョブが「置き換え不可能」になります。


アップグレードできません:(
マーティン

conflitsを発見し、それらを修正する必要があります
マーティン

1

「ターゲットのシャットダウン」に達したときに、スワップがまだアクティブである可能性があります。私の解決策は、再起動前にスワップを無効にすることでした:

swapoff -a
swapoff /dev/md6

その後、再起動は停止せずにうまくいきました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.