fedora-os.org

ottobre 26, 2011

Analizzare i problemi di systemd

Filed under: Debug, Sistema, Software — Etichette: , , — sagitters @ 5:02 pm

Systemd è un manager di servizi e di sistema per Linux compatibile con SysV e LSB Init Scripts.
In caso si presentassero dei problemi all’avvio di Fedora con systemd, prima di tutto è fortemente consigliato controllare tra le liste dei bug conosciuti della release in uso (magari il bug è stato già risolto); se invece è necessario aprire un nuovo bug report, vediamo cosa fare per analizzare il fatto e fornire più informazioni possibile ai developers.

Identificazione del problema

  • Rimozione delle opzioni rhgb e quiet dalla riga kernel nel file di configurazione di Grub.
  • Aggiungere l’opzione systemd.log_level=debug alla riga kernel per attivare la modalità debug log di systemd.
  • Aggiungere l’opzione systemd.log_target=kmsg alla riga kernel per ottenere la scrittura del systemd buffer nel kernel log buffer.
  • Avviare il comando $/bin/systemd --test --system --log-level=debug per testare l’avvio di init come systemd e calcolare le transazioni iniziali.

Informazioni da includere nel report

  • Esattamente la riga kernel utilizzata da Grub se diversa da quella di default; si ottiene dal grub.conf o con il comando $cat /proc/cmdline
  • Una copia del $cat /var/log/messages
  • Una copia del dmesg: $dmesg>dmesg.txt
  • L’output del systemd dump: $systemctl dump > systemd-dump.txt
  • L’output di $/bin/systemd --test --system --log-level=debug > systemd-test.txt 2>&1

Configurare una serial console

L’ avvio per un debugging di successo richiederà particolari tipi di login durante il processo di boot. Per abilitare il serial console output sia da kernel che da grub, aprire il grub.conf ed aggiungere le seguenti righe appena sotto la riga ‘timeout’:

serial --unit=0 --speed=38400
terminal --timeout=5 serial console

aggiungere inoltre i seguenti argomenti alla riga kernel in grub.conf

console=tty0 console=ttyS0,38400

Avvio in rescue mode o con la shell d’emergenza

Aggiungere systemd.unit=rescue.target alla riga di comando del kernel
Aggiungere systemd.unit=emergency.target oppure emergency alla riga di comando del kernel.

Vari comandi relativi a systemd

  • systemctl list-jobs
    Identifica, nei boot lenti, i job (lavori o esecuzioni) avviati (running) che rallentano il boot e quelli in attesa (waiting)
  • systemctl list-units -t service --all
    Lista i servizi disponibili e il loro stato
  • systemctl list-units -t service
    Lista i servizi avviati
  • systemctl status sshd.service
    Esamina lo stato corrente del servizio indicato
  • systemctl list-units -t target --all
    Lista tutti i target disponibili
  • systemctl list-units -t target
    Lista tutti i target attivi
  • systemctl show -p "Wants" multi-user.target
    Mostra quali servizi avvia il target indicato
  • systemd --test --system --unit=multi-user.target
    Esamina quali servizi ha avviato il target indicato

Tema: WordPress Classic. Blog su WordPress.com.

Iscriviti

Get every new post delivered to your Inbox.