Pourquoi avons-nous besoin de la fonction de redémarrage dans différents binaires?
shutdown -r
et
reboot
Ou diffèrent-ils dans quelque chose?
Pourquoi avons-nous besoin de la fonction de redémarrage dans différents binaires?
shutdown -r
et
reboot
Ou diffèrent-ils dans quelque chose?
Réponses:
Nous n'avons pas nécessairement besoin des deux, mais nous les avons tous les deux en raison de l'histoire d'Unix et de sa multiplicité de versions.
Depuis leurs pages de manuel respectives:
l'arrêt est plus polyvalent et plus puissant, tandis que le redémarrage est plus convivial et plus facile à mémoriser.
l'arrêt vous permet de spécifier un argument temporel (pour redémarrer dans 5 minutes, par exemple) et vous permet de faire bien d'autres choses que le redémarrage, notamment:
Cependant, si vous souhaitez simplement redémarrer le système maintenant, il est plus facile de taper reboot
que shutdown -r now
.
shutdown
maintenant utilisées par défaut. N'essayez pas d'obtenir de l'aide pour l'arrêt avec shutdown -h
jamais, surtout pas sur un serveur quelque part dans un centre de données.
Les deux commandes font quelque chose de différent, mais elles peuvent finir par s'appeler, c'est pourquoi elles semblent faire la même chose!
reboot
invoquera le noyau pour déclencher un redémarrage matériel. Cependant, il ne le fera que si le système est prêt pour l'arrêt - tous les démons et processus utilisateur doivent être arrêtés, les systèmes de fichiers démontés, etc. Il vérifie donc le niveau d'exécution du système, et si ce n'est pas 0 ou 6, alors il invoquera réellement la shutdown
commande pour vous.
shutdown
entraîne la modification du niveau d'exécution du système. Le changement de niveau d'exécution (à 0 pour l'arrêt ou 6 pour le redémarrage) exécute de nombreux scripts dans /etc/rc0.d ou rc6.d qui arrêtent les démons, démontent les systèmes de fichiers, etc. Enfin, ces scripts invoquent halt
ou reboot
- cette fois le système est en le niveau d'exécution correct et ils demandent au noyau de redémarrer (ou de s'arrêter).
En plus de ce qu'iconoclaste a écrit, il existe une distinction importante entre les deux programmes: shutdown
est dans /sbin
, tandis que reboot
est dans /usr/bin
.
Pourquoi est-ce important, demandez-vous? Je vais vous dire.
Les choses sous /usr
sont celles qui ne doivent pas être disponibles jusqu'à ce que le système soit démarré suffisamment loin pour que le système soit minimalement fonctionnel. Répertoires de haut niveau qui sont traditionnellement jamais montés sur des systèmes de fichiers séparés - /bin
, /etc
, /sbin
, etc. - devraient être disponibles alors que le système atteint cet état peu utile. Il y a différentes implications de cette conception; par exemple, c'est un mauvais style d'écrire la clause "stop" d'un script d'initialisation SysV qui utilise des programmes dans /usr/bin
s'il existe une alternative dans /bin
ou /sbin
.
shutdown
est l'utilitaire clé, celui toujours disponible. reboot
est un utilitaire de commodité uniquement.
reboot
est dans /sbin
Debian (avec SysVinit) et Ubuntu (avec upstart).