Il n'y a pas de différence entre eux. En interne, ils font exactement la même chose :
-
rebootutilise leshutdowncommande (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 leSIGKILLsignal (toujours trouvé dans les sources, peut être invoqué avec-foption), 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 6indique leinitprocessus 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 nowcommande 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)