Je veux juste connaître la différence entre in
reboot
init 6
shutdown -r now
et lequel est le plus sûr et le meilleur ?
Réponse acceptée :
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 gracieuse et conviviale. . Cela garantit que les démons se nettoient avant l'arrêt. -
init 6
dit 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
il s'agit d'une "commande héritée disponible uniquement pour la compatibilité". et le systemctl
méthode sera la seule sûre.