"Il sistema non funziona per il riavvio ora"


13

Sono collegato a un beagleboard tramite tty e all'improvviso vedo questo messaggio:

Broadcast message from root@arm
        (unknown) at 11:40 ...

The system is going down for reboot NOW!
[  143.036193] Restarting system.

Il sistema è Ubuntu 12.10. C'è un posto dove posso trovare perché il sistema ha deciso di andare in crash?

AGGIORNAMENTO: maggiori informazioni

  • Questo in realtà accade sempre, la scheda si riavvia ogni 1-5 minuti.
  • Mi sono assicurato che nessun programma o demone fosse eseguito all'avvio.
  • Non riesco a trovare da Restartingnessuna parte in nessun file in/var/log
  • In syslogprima di un riavvio c'è costantemente aFeb 10 09:20:00 arm rsyslogd: [origin software="rsyslogd" swVersion="5.8.6" x-pid="317" x-info="http://www.rsyslog.com"] exiting on signal 15.

@ JMCF125 Ho aggiornato la mia domanda con qualche informazione in più
— Thomas,

Si scopre che rsyslogdè semplicemente il demone che dà quei messaggi ... Forse hai un raro malware Linux ... 1 a 5 minuti è poco tempo, prova a inserire un Live CD e scopri di più. Se non ottieni nulla, ti consiglio di reinstallare, possibilmente un'altra distribuzione.
— JMCF125,

All'inizio stavo pensando a un problema fisico sulla scheda, come se la tensione elettrica fosse un po 'troppo bassa, ma dato il sistema lo saprebbe?
— Thomas,

Se la potenza fosse il problema, con il Live CD lo stesso accadrebbe.
— JMCF125,

Risposte:


11

Il modo in cui lo rintraccio è di sostituire le utility halte shutdowncon uno script.

Innanzitutto crea uno script come il seguente in /bin/fakehalt:

#!/bin/bash
exec >>/tmp/fakehalt.log 2>&1
date
echo "CMD=$0 PID=$$"
ps -ef --forest
echo '========'

Quindi installalo con:

chmod a+x /bin/fakehalt
mv /sbin/halt /sbin/halt.orig
ln -s /bin/fakehalt /sbin/halt
mv /sbin/shutdown /sbin/shutdown.orig
ln -s /bin/fakehalt /sbin/shutdown

Ciò creerà un file di registro /tmp/fakehalt.logogni volta che viene chiamato. Registra il nome che è stato chiamato come ( halto shutdown) è il proprio PID, quindi un diagramma ad albero di tutti i processi in quel momento.

Questo dovrebbe darti tutte le informazioni necessarie per rintracciarlo. Basta guardare attraverso l' psalbero e trovare ciò che ha chiamato la sceneggiatura.


/sbin/rebootdovrebbe essere un collegamento simbolico a /sbin/halt. In caso contrario, sostituiscilo anche tu.


Se il problema persiste, sostituisci /sbin/initanche (in quanto può essere utilizzato anche per riavviare il sistema). Ma questo è pericoloso come se il sistema si riavviasse, non funzionerà correttamente.


Mi piace la tua soluzione, l'ho provata e mi ha aiutato a trovare il problema (un lavoro in fcron lasciato da qualcun altro che si è spento di proposito quando un controllo era falso)
— Thomas

1
@Thomas Hai detto in precedenza che fcronera vuoto, ti sei solo chiesto perché l'attività non è stata mostrata, riesci a vederlo ora?
— X Tian,

@XTian errore umano, ho controllato cron ma non fcron
— Thomas

@Thomas, BTW, perché c'era un lavoro fcronda chiudere?
— JMCF125,

1
@ JMCF125 Sì, è stato il caso (problemi di disconnessione USB beagleboard) e mi ha portato a leggere discussioni di gruppi Google molto lunghe. È stato un mio errore con il fcron, questo è stato un falso incendio. In qualche modo lo script in fcron dice "riavvio" ed è per questo che c'è un messaggio generale in kern.log. Grazie per il follow-up
— Thomas,

3

Esegui il tuo kernel con qualcosa del genere init=/bin/bash. Questo dovrebbe far sì che nessun processo sia in esecuzione oltre a questa shell.

Verifica che ci siano più problemi di riavvio.

Quindi scopri quale sistema init usi normalmente e dai un'occhiata a tutti i servizi avviati da esso.

Prova a disabilitare i servizi fino alla scomparsa del problema di riavvio.


in quale file scrivi init=/bin/bash?
— Thomas,

Questo dipende dal tuo boot loader. (grub, syslinux, ecc.) Di solito il tuo boot loader dovrebbe darti un modo interattivo per scegliere il tuo kernel e aggiungere parametri aggiuntivi. Ha anche alcuni file di configurazione (di solito in / boot) per aggiungere parametri in modo permanente.
— michas,

2

Bene, è una di queste possibilità.

  • Qualcuno sta eseguendo l'arresto
  • cron sta eseguendo l'arresto (o ha avviato qualcosa che sta eseguendo l'arresto)
  • la gestione dell'alimentazione attiva un arresto (nessun sistema di alimentazione, ibernazione, sospensione o inattività, il pulsante hardware di alimentazione è premuto)
  • riavvio richiesto dopo l'installazione del pacchetto

Sfortunatamente cron e fcron sono vuoti, e io sono l'unico collegato alla scheda, nessuno sta eseguendo l'arresto
— Thomas

L'OP dice: «Mi sono assicurato che nessun programma o demone fosse eseguito all'avvio.». E dubito che qualcuno abbia violato il suo computer per spegnerlo ogni tanto. Forse è qualcos'altro.
— JMCF125,

Cerca shut (indipendente dal caso non riavviare) in var / log / *
— X Tian

nessun risultato per "chiuso"
— Thomas
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.