Perché abbiamo bisogno della funzione di riavvio in binari diversi?
shutdown -r
e
reboot
O differiscono in qualcosa?
Perché abbiamo bisogno della funzione di riavvio in binari diversi?
shutdown -r
e
reboot
O differiscono in qualcosa?
Risposte:
Non abbiamo necessariamente bisogno di entrambi, ma li abbiamo entrambi a causa della storia di Unix e della sua molteplicità di versioni.
Dalle rispettive pagine man:
l'arresto è più generico e più potente, mentre il riavvio è più semplice e facile da ricordare.
shutdown ti consente di specificare un argomento temporale (per riavviare in 5 minuti, ad esempio) e ti consente di fare molte cose oltre al riavvio, tra cui:
Tuttavia, se si desidera semplicemente riavviare il sistema ora, è più facile digitare rebootdi shutdown -r now.
shutdownutilizzo ora sono predefinite. Non cercare mai di ottenere aiuto per lo spegnimento shutdown -h, soprattutto su un server da qualche parte in un datacenter.
I due comandi fanno qualcosa di diverso, tuttavia possono finire per chiamarsi, motivo per cui sembrano fare la stessa cosa!
rebootinvocherà il kernel per attivare effettivamente un riavvio dell'hardware. Tuttavia, lo farà solo se il sistema è pronto per l'arresto: tutti i daemon e i processi utente devono essere arrestati, i file system smontati, ecc. Quindi controlla il runlevel del sistema e, se non è 0 o 6, invocherà effettivamente il shutdowncomando per te.
shutdowncausa la modifica del runlevel di sistema. La modifica del runlevel (su 0 per halt o 6 per il riavvio) esegue molti script in /etc/rc0.d o rc6.d che arrestano i demoni, smontano i filesystem, ecc. Infine, questi script invocano halto reboot- questa volta il sistema è in il runlevel corretto e indicano al kernel di riavviare (o arrestare).
Oltre a ciò che ha scritto iconoclast, esiste una distinzione importante tra i due programmi: shutdownis in /sbin, while rebootis in /usr/bin.
Perché è importante, chiedi? Te lo dirò.
Le cose sotto /usrsono quelle che non devono essere disponibili fino a quando il sistema non viene avviato abbastanza lontano da rendere il sistema minimamente funzionale. Directory di livello superiore che sono tradizionalmente mai montati su filesystem separati - /bin, /etc, /sbin, ecc - dovrebbero essere a disposizione, mentre il sistema sta raggiungendo questo stato minimamente utile. Ci sono varie implicazioni di questo disegno; per esempio, è uno stile sbagliato scrivere la clausola "stop" di uno script di init SysV che utilizza programmi in /usr/binse esiste un'alternativa in /bino /sbin.
shutdownè l'utilità chiave, quella sempre disponibile. rebootè solo una comoda utility.
rebootè in /sbinDebian (con SysVinit) e Ubuntu (con upstart).