Il n'y a pas de différence entre eux. En interne, ils font exactement la même chose :
-
reboot
utilise leshutdown
commande (avec le commutateur -r). La commande shutdown était utilisée pour tuer tous les processus en cours d'exécution, démonter tous les systèmes de fichiers et enfin dire au noyau d'émettre la commande d'alimentation ACPI. La source peut être trouvée ici.Dans les anciennes distributions, la commande de redémarrage forçait les processus à se fermer en émettant leSIGKILL
signal (toujours trouvé dans les sources, peut être invoqué avec-f
option), dans les distributions les plus récentes, la valeur par défaut estinit 1 -> shutdown -r
, plus élégante et conviviale pour l'initialisation. . Cela garantit que les démons se nettoient avant l'arrêt. -
init 6
indique leinit
processus pour arrêter tous les processus/démons générés tels qu'ils sont écrits dans les fichiers init (dans l'ordre inverse de leur démarrage) et enfin invoquer leshutdown -r now
commande pour redémarrer la machine
Aujourd'hui, il n'y a pas beaucoup de différence car les deux commandes font exactement la même chose et respectent les scripts d'initialisation utilisés pour démarrer les services/démons en invoquant les scripts d'arrêt pour eux. Sauf pour reboot -f -r now
comme indiqué ci-dessous
Il y a une petite explication tirée des pages de manuel expliquant pourquoi le reboot -f
n'est pas sûr :
-f, --force Force immediate halt, power-off, reboot. Don't contact the init system.
Modifier :
J'ai oublié de mentionner que dans les prochaines distributions RHEL, vous devriez utiliser le nouveau systemctl
commande pour émettre poweroff/reboot. Comme indiqué dans les pages de manuel de reboot
et shutdown
ils sont "une commande héritée disponible uniquement pour la compatibilité". et le systemctl
méthode sera la seule sûre.
L'arrêt est préférable car il vous permet de spécifier la raison pour l'action drastique - quelque chose que vous devriez toujours faire. Le message sera enregistré dans le(s) journal(s) pour la postérité. Par exemple :
shutdown -r now 'Kernel upgrade requires reboot'
Vous pouvez également effectuer une planification reboot -- en spécifiant autre chose que now
comme heure de redémarrage :
shutdown -r 22:00 'Work around kernel memory leak'
Ensuite, vos utilisateurs recevront des rappels périodiques pour sortir à mesure que le temps approche - le processus sera plus ordonné et professionnel.
Sur les unités traditionnelles, reboot
et shutdown -r now
sont des commandes très différentes. En utilisation normale, reboot
ne peut être utilisé en toute sécurité qu'en mode mono-utilisateur.
shutdown -r now
est la méthode canonique pour s'arrêter sur différents *nix et plus sûre à utiliser en général et est fonctionnellement équivalente à init 6
.
init(8)reboot(8)