Il riavvio è uguale a init 6?

20

Il riavvio è lo stesso di init 6 per ubuntu?

Sto utilizzando Ubuntu 12.04 su Amazon EC2. Quando ssh'ed nella casella posso digitare runlevel e ottengo:

N 2

Guardando man reboot Vedo che:

% Bl0ck_qu0te%

Se leggo man shutdown 8 , vedo:

% Bl0ck_qu0te%

La mia comprensione di base della differenza tra reboot e init 6 è:

  • Su altre distro e forse su vecchie distribuzioni reboot semplicemente smonta i dischi e, in sostanza, fai scorrere l'interruttore di alimentazione senza eseguire alcuno script di spegnimento
  • init 6 eseguirà tutti gli script di chiusura in /etc/init/rc.* in quanto riduce il runlevel del sistema
  • Nelle versioni più recenti di Ubuntu il comando reboot senza --force o -f eseguirà il comando shutdown che fondamentalmente farà la stessa cosa di init 6
  • Probabilmente è meglio prendere l'abitudine di usare init 6 invece di reboot perché è più sicuro e funzionerebbe meglio con il cross-distro, ma il comportamento predefinito di reboot è stato modificato per cercare di prevenire errori / dataloss se qualcuno lo usa.

È giusto? In caso contrario, cosa mi manca?

    
posta cwd 13.08.2012 - 22:59

1 risposta

20

Non ci sono mai davvero motivi validi per usare init 6 invece di reboot , a meno che:

  • Per qualche motivo ti manca l'eseguibile reboot , o
  • Stai deliberatamente cercando di evitare di avvisare gli utenti che il sistema sta andando giù.

reboot (a patto che non si esegua reboot --force ) è in realtà il modo "più morbido" di chiudere.

Si consideri:

% Bl0ck_qu0te%

Ma il comando reboot , chiamato senza il flag --force , solo riavvia direttamente il sistema (tramite reboot chiamata di sistema ) quando si verifica una di queste due situazioni:

  • Il sistema si trova in runlevel 0 (modalità utente singolo), quindi non c'è riduzione del runlevel che può verificarsi, quindi non vengono eseguiti automaticamente script di spegnimento.
  • Il sistema è in runlevel 6. Quale init 6 lo fa per mettere il sistema in runlevel 6. Di nuovo, non c'è niente in esecuzione init 6 lo farà eseguendo il comando reboot vinto ' t fare.

Altrimenti, sudo reboot equivale a sudo shutdown -r now . Questo fa tutte le cose carine di sudo init 6 , ma anche:

  • notifica agli utenti che il sistema sta andando giù.
  • impedisce nuovi accessi (anche se probabilmente non ci riuscirebbero comunque).
  • è più intuitivo e autodocumentante di sudo init 6 .

Se sei su un sistema con solo te effettuato l'accesso e solo accessi locali, non c'è niente di sbagliato nell'usare init 6 per riavviare. Se è così che preferisci riavviare, allora tutti i mezzi, vai avanti - non stai danneggiando nulla facendo così. Ma non c'è nulla di obiettivamente preferibile nel farlo in questo modo.

La

% documentazione di co_de% dice che non è il modo normale di spegnere o riavviare il sistema. Considera che quando init viene eseguito dall'utente (come quando si esegue init ), in realtà esegue sudo init 6 (vedi telinit ). man init è ciò che effettivamente modifica i runlevel. E telinit ci dice:

% Bl0ck_qu0te%     
risposta data Eliah Kagan 13.08.2012 - 23:20

Leggi altre domande sui tag