"Reboot" o "shutdown -r now": quale comando di riavvio è più sicuro?


50

Nella nostra organizzazione abbiamo circa 500 macchine RedHat Linux.

Su tutte le macchine in cui abbiamo installato applicazioni e servizi /etc/init.de server Oracle RAC. Abbiamo intenzione di eseguire aggiornamenti yum su tutte le macchine e successivamente eseguire un riavvio.

Quindi mi chiedevo quale comando fosse più sicuro:

reboot

o

shutdown -r now


1
abbiamo tutti i tipi - come redhat 4,5,6,7
dandan il

6
Riavvolgiamo: perché pensi che ci possa essere una differenza nella sicurezza?
underscore_d

2
@underscore_d: non è irragionevole pensare che si possa essere un comando "solo per uso interno" che non esegue tutti gli stessi passaggi di spegnimento pulito. Ad esempio, forse uno usa l'altro dopo aver eseguito alcuni passaggi iniziali di spegnimento pulito. Naturalmente, la pagina man spiega che rebootè solo un comando legacy ed esiste ancora solo per la compatibilità con le versioni precedenti.
Peter Cordes,

1
@knowhy Una domanda non può essere un duplicato di una domanda su un altro sito ..
Insane

Risposte:


50

Per i sistemi Red Hat, non esiste alcuna differenza funzionale tra reboote shutdown -r now.

Fai quello che è più facile per te.


13
Ma uno ti fa scrivere di più ed è fondamentalmente "più bello"!
Insane il

Uno richiede l'accesso super utente, l'altro può essere eseguito da qualsiasi utente (se non limitato) da una sessione X.
Burhan Khalid,

2
@BurhanKhalid Se hai persone casuali che accedono a sessioni X su server, allora potresti avere problemi più grandi di chiederti quale dei due comandi sia "più sicuro".
un CVn

1
Almeno su Debian (anche se ammetterò prontamente di non conoscere Red Hat, ma la risposta di Janne Pikkarainen suggerisce che potrebbe essere simile ma diversa) halt, reboote poweroffnon accettare un messaggio di motivazione né un'ora, come ha spiegato Mikhail T. . Penso che prenderei in considerazione uno strumento per essere in grado di fare qualcosa che un altro non consente di essere una "differenza funzionale".
un CVn

88

L'arresto è preferibile perché ti consente di specificare il motivo dell'azione drastica, cosa che dovresti sempre fare. Il messaggio verrà registrato nei log per i posteri. Per esempio:

shutdown -r now 'Kernel upgrade requires reboot'

È inoltre possibile eseguire un riavvio pianificato , specificando qualcosa di diverso rispetto nowal tempo di riavvio:

shutdown -r 22:00 'Work around kernel memory leak'

Quindi i tuoi utenti riceveranno promemoria periodici per uscire e così via - il processo sarà più ordinato e professionale.


13

Se dai un'occhiata, in RHEL 7 entrambi /sbin/shutdowne in /sbin/rebootrealtà sono solo collegamenti simbolici al systemctlcomando di systemd . Quindi, usa quello che vuoi. Nessuna differenza funzionale come diceva ewwhite, nemmeno nelle versioni precedenti di RHEL che non utilizzavano ancora systemd.


12
Non trovo questo argomento molto convincente: è ovvio che /sbin/shutdowne /sbin/rebootnon si comportano allo stesso modo in tutti i casi (in particolare: /sbin/shutdownnon si riavvia per impostazione predefinita!), Quindi se sono collegati allo stesso eseguibile, quell'eseguibile deve esaminandone ARGV[0]e modificando di conseguenza il comportamento. Sebbene ciò certamente riduca il rischio di differenze involontarie , non è una prova convincente che non ci siano differenze funzionali intenzionali che l'OP potrebbe voler conoscere.
Ruakh,

3
Attenzione a presumere che un collegamento simbolico implichi equivalenza, in particolare se sono coinvolti nomi diversi.
mckenzm,

ruakh ha ragione: pensaci un momento, anche se rebootè collegato a un link simbolico systemctl, non puoi usare ad es. reboot status whatever.servicecome faresti con quest'ultimo, vero?
Grawity il

9

L'uso rebootè più sicuro.

L'uso del reboottuo intento è chiaro e non c'è modo di digitarlo in modo errato per qualcos'altro come ciò shutdown -t nowche potrebbe portare a qualche mal di testa se si utilizza su un server remoto con controllo limitato.


2
Risposta sottovalutata di IMHO. Molto spesso dimentichiamo quanto sia importante chiarire le intenzioni e quanto tempo e parolacce salva a lungo termine!
RoughTomato,

1

Per RHEL moderno, si consiglia di utilizzare il comando systemctl come riepilogato qui : [recenti] Le distribuzioni RHEL devono utilizzare il nuovo comando systemctl per eseguire lo spegnimento / riavvio. Come indicato nelle manpage di reboot e shutdown, sono "un comando legacy disponibile solo per compatibilità".

Tuttavia, se usi molte diverse distribuzioni, o distribuzioni di varie annate, forse segui shutdown -r now 'reason for shutdown'.

Il motivo principale da utilizzare rebootsarebbe quello di evitare il rischio di dimenticare di aggiungere -r quando si utilizza shutdown -rsu un computer remoto, il che potrebbe facilmente comportare l'impossibilità di accedere nuovamente e di dover utilizzare l'amministratore remoto (se disponibile) per riavviare il macchina.


0

I sistemi più vecchi hanno sicuramente fatto una distinzione tra shutdowne reboot. Quest'ultimo non chiuderebbe i servizi o sincronizzerebbe necessariamente anche i buffer del disco. In ambienti eterogenei - o per evitare precedenti che potrebbero essere pericolosi in futuro quando si incontrano altre implementazioni * ix - è utile prendere l' shutdownabitudine.

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.