Sistem yeniden başlatma sırasında neden askıda kalıyor?


13

10 defadan 1'i, sistem yeniden başlatma sırasında takılır. Sebebini anlamıyorum. Sorunu çözmek için neye / nereye bakmalıyım? Systemd v196 kullanıyorum ve sürüm> = 198'e yükseltemiyorum çünkü ikincisi, müşteri gereksinimleri tarafından güncellenemeyen yeni bir çekirdek (gruplar için destekli) gerektiriyor. Bu davranışın nedenini keşfetmenin ve systemd'in sistemi koşulsuz olarak yeniden başlatmasının makul bir yolu olup olmadığını merak ediyorum.

Bu bağlantının yardımcı olmadığını unutmayın: http://freedesktop.org/wiki/Software/systemd/Debugging/#index2h1

Orada okuyabileceğiniz gibi:

Kapatma Asla Bitmez

Birkaç dakika bekledikten sonra bile normal yeniden başlatma veya kapanma işlemi hiç bitmezse, kapatma günlüğünü oluşturmak için yukarıdaki yöntem yardımcı olmaz ve günlük diğer yöntemler kullanılarak alınmalıdır. Önyükleme sorunları için hata ayıklamada yararlı olan iki seçenek kapatma sorunları için de kullanılabilir:

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

Seri konsolu kullanıyorum ve bazı nedenlerden dolayı, eth arayüzü olarak ya da yeniden başlatıldığında (yeniden başlatma adımları sırasında bir bağlantı kesildikten sonra) giriş yapabilirim.

Sebebini göremiyorum.

# 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 öğesini not edin. Orada ama takas bölümleri kullanmıyoruz. Takas maskelemeye çalıştım, ama asılma sorunu ortaya çıkıyor. Konsoldaki son satır:

[OK] Stopped target shutdown.

EDIT: Dediğim gibi eth üzerinden ssh üzerinden yeniden giriş yapabilirsiniz.

Şimdi size iki kütük göstereceğim. İlk günlük yeniden başlatma / shutdwon kilitlendiğinde, ikinci günlük yeniden başlatma başarılı olduğunda gerçekleşir:

Asmak durumunda, çıktı her zaman böyle (tam günlük):

[  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>

Normal yeniden başlatma:

         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.

GÜNCELLEME:

Bazı araştırmalardan ve hata ayıklamalardan sonra, yine de çözemesem de kapatma kesintisinin nedenini keşfettim. Olan şey, bazı nedenlerden dolayı kapatma tamamlanmadan önce özel hizmetlerden birinin başlatılmasıdır, bu da kapatma yordamının askıda kalmasını sağlar. Bu bir asılma vakası. Bir başka asılma türü, kapatma işleminin kesintiye uğramadığı, ancak bir noktada durduğu zamandır. Bu nedenle, tüm çatışmaları ve diğer olası askıları birer birer çözmeden önce, donanım gözlemcisini koşulsuz olarak etkinleştirmek istiyorum. Bunu systemd ile yapmak için, ayrı ayrı veya birlikte, RuntimeWatchdogSec ve ShutdownWatchdogSec'i etkinleştirdim ve test ettim. Ne yazık ki yardım etmediler. Kaynak koduna bakarak,

Sıkıştım. Ne sormak için bir yol bulmak için ya da: 1. bekçi en azından kapatma başladığı noktadan başlayarak koşulsuz olarak etkinleştirmek 2. tespit ve kolay bir şekilde tüm çatışmaları çözmek

İlk çözelti tercih edilir.


Aşağı inerken asılı mı? Sistemde hangi hizmetlerin etkinleştirildiğini bizimle paylaşır mısınız? Ismarlama olan var mı? Systemd'in askıda kaldığı sonucuna nasıl vardınız?
MattBianco

@MattBianco Soruyu düzenledim. Daha fazla bilgi var.
Martin

Birinci ve ikinci günlükler arasında neden aynı çizgi görmüyorum? Nereden farklılaşmaya başladıklarını görebilseydim daha fazla yardım sunabilirdim .
BenjiWiebe

@BenjiWiebe haklısın. Soruyu tekrar düzenleyeceğim
Martin

journalctl dosyasını kök olarak kullanmaya çalışın ve systemd günlüğünde zaman aşımlarını, hataları ve bağımlılık hatalarını arayın.
harrymc

Yanıtlar:


5

Bir çözüm öneriyorum: eklemeyi deneyin

  Before=basic.target

/usr/lib/systemd/system/dbus.service adresine gidin.

Günlüklerinizde, Arch Linux forumlarında bir süre önce okuduğum bir kazayı hatırlatan tuhaflıktan etkilendim : Bu sistem yeniden başlatılacaktı. Çözüm, asmanın durdurulduktan sonra d-bus ile konuşmaya çalışan bazı servislerden kaynaklanacağı gerekçesiyle yukarıdaki gibi sunuldu:

Böylece, basic.target'ten önce sipariş vererek, yalnızca temel hedefe ulaşılmadan önce başlamaz, aynı zamanda basic.target'ın kapanma sırasında aşağıya inmesine kadar devam etmesini sağlar.

Sizin de sağlıksız günlüğüne, bunun düzgün durdurulduğunda Temel Sistemi, durdurulmaz gerçeği görmek sağlıklı günlüğüne.

Bu işe yaramayacak mı ve yeni sürüme geçiremeyeceğinizi göz önüne alarak, bir sürüm düşürmeyi düşündünüz mü?


1
Teşekkürler, çözümünüzü deneyeceğim. Ben iyi eski SysV yerine, sistemd tasarım tarafından rahatsız gibi görünüyor düşündüm.
Martin

Bu değişikliği uyguladıktan sonra önyüklemede systemd'den alıyorum: Sipariş döngüsü bulundu, D-Bus Sistem İleti Veri Yolu'nu atlayın. Herhangi bir fikir?
Martin

@Martin 1: Ayrı bölümlerde / ve / usr var mı? 2) /etc/init.d dosyasında çok şey var mı? Veya /etc/rc.d?
MariusMatutiae

1
bu Ubuntu 16.04 üzerinde harika çalışıyor, dosya bölüm /usr/lib/systemd/user/dbus.servicealtındaydı[Unit]
Anwar

3

shutdown.targetkapatma işlemi başladığında otomatik olarak durdurmak için diğer tüm birimlerle varsayılan olarak çakışır. Bu da başka şekilde çalışır - başka bir birim başlatılırsa shutdown.targetdurdurulur. Sorunun Yani olmasıdır şey kapatma işlemini geçersiz kılar kapatma sırasında başlatmak için nedenleri şey.

Bu, kapatma işini "yeri doldurulamaz" yapan sistemd v198'de düzeltilmiş olmalıdır.


Yükseltme yapamıyorum :(
Martin

Kıvrımları keşfetmeli ve onları düzeltmeliyim
Martin

1

Belki de takas "Hedef kapanma" ya ulaştığında hala aktiftir; Benim çözüm yeniden başlatmadan önce takas deaktivasyonu zorlamak oldu:

swapoff -a
swapoff /dev/md6

Bundan sonra, yeniden başlatma benim için hiç duraklama olmadan iyi gitti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.