Il riavvio è uguale a init 6?


22

Il riavvio è uguale a init 6 per Ubuntu?

Sto eseguendo Ubuntu 12.04 su Amazon EC2. Quando viene inserito nella casella posso digitare runlevele ottengo:

N 2

Guardando man rebootvedo che:

Quando viene chiamato con --force o in runlevel 0 o 6, questo strumento richiama la chiamata di sistema reboot (2) e riavvia direttamente il sistema. In caso contrario, questo invoca semplicemente lo strumento shutdown (8) con gli argomenti appropriati.

Se leggo man shutdown 8vedo:

lo spegnimento prevede che il sistema possa essere arrestato in modo sicuro. A tutti gli utenti che hanno effettuato l'accesso viene notificato che il sistema non funziona e, negli ultimi cinque minuti di TIME, vengono impediti i nuovi accessi.

La mia comprensione di base sulla differenza tra rebooted init 6è:

  • Su altre distro e forse più vecchie, smonterei rebootsemplicemente i dischi e basterebbe a premere l'interruttore di accensione senza eseguire script di spegnimento
  • init 6eseguirà tutti gli script di spegnimento in /etc/init/rc.*quanto riduce il runlevel del sistema
  • Sulle versioni più recenti di Ubuntu il rebootcomando senza --forceo -feseguirà il comando di spegnimento, che sostanzialmente farebbe la stessa cosa diinit 6
  • Probabilmente è meglio prendere l'abitudine di usare init 6invece di rebootcome è più sicuro e funzionerebbe meglio cross-distro, ma il comportamento predefinito di rebootè stato modificato per cercare di prevenire errori / perdita di dati se qualcuno lo usa.

È giusto? In caso contrario, cosa mi sto perdendo?

Risposte:


23

Non c'è davvero alcun motivo convincente da usare al init 6posto di reboot, a meno che:

  • Per qualche motivo ti manca l' rebooteseguibile, o
  • Stai deliberatamente cercando di evitare di avvisare gli utenti che il sistema non funziona.

reboot(purché non corri reboot --force) è in realtà il modo "più morbido" di spegnere.

Ritenere:

init 6eseguirà tutti gli script di spegnimento in /etc/init/rc.*quanto riduce il runlevel del sistema

Ma il rebootcomando , chiamato senza la --forcebandiera, riavvia solo direttamente il sistema (tramite la rebootchiamata di sistema ), quando uno di questi due situazioni:

  • Il sistema è in runlevel 0 (modalità utente singolo), quindi non vi è alcuna riduzione del runlevel che può verificarsi, quindi non vengono eseguiti automaticamente script di arresto.
  • Il sistema è in runlevel 6. Cosa init 6fa per mettere il sistema in runlevel 6. Ancora una volta, non c'è niente in esecuzione init 6che farà l'esecuzione del rebootcomando non lo farà.

Altrimenti, sudo rebootequivale a sudo shutdown -r now. Questo fa tutte le cose belle sudo init 6, ma anche:

  • notifica agli utenti che il sistema non funziona.
  • impedisce nuovi accessi (anche se probabilmente non riusciranno comunque).
  • è più intuitivo e auto-documentante disudo init 6 .

Se sei su un sistema con solo il login e solo accessi locali, non c'è niente di sbagliato nell'uso del init 6riavvio. Se è così che preferisci riavviare, allora vai avanti - non stai facendo del male a nessuno. Ma non c'è niente di obiettivamente preferibile nel farlo in questo modo.

initLa documentazione propria dice che non è il modo normale di spegnere o riavviare il sistema. Considera che quando initviene eseguito dall'utente (come quando esegui sudo init 6), in realtà viene eseguito telinit(vedi man init). telinitè ciò che realmente cambia i runlevel. E man telinitci dice:

Normalmente si utilizza lo strumento shutdown (8) per arrestare o riavviare il sistema o per portarlo in modalità utente singolo.


Ho Alienware X51 dell pc, dove ho installato Ubuntu 13.04 e kernel 3.11. Quando eseguo $ init 6, si riavvia e talvolta il BIOS continua a essere visualizzato per sempre. È perché sto usando init 6 e non riavvio comando?

1
@YumYumYum Non vedo perché l'utilizzo init 6causerebbe questo. Quando si utilizza rebootinvece di init 6, supera sempre il BIOS?
Eliah Kagan,

1
Ho aggiornato il firmware del BIOS da A00 ad A02, da allora il mio riavvio o init 6 funzionano entrambi, quindi sembra che il problema con il BIOS sia stato. Grazie.

L'esecuzione a rebootvolte si interrompe sul mio Ubuntu Server 14.02 solo per utente singolo e accesso locale. È sicuro che faccio sempre syncseguito da un reboot -f?
user3549648
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.