Le comportement exact de ces trois commandes varie d'un système d'exploitation à l'autre.
Thorbjørn Ravn Andersen
Réponses:
83
Il n'y a pas de différence en eux. En interne, ils font exactement la même chose:
rebootutilise la shutdowncommande (avec le commutateur -r). La commande shutdown permet de tuer tous les processus en cours d'exécution, de démonter tous les systèmes de fichiers et enfin d'indiquer au noyau d'émettre la commande d'alimentation ACPI. La source peut être trouvée ici . Dans les distributions plus anciennes, la commande de redémarrage forçait les processus à quitter en émettant le SIGKILLsignal (toujours présent dans les sources, peut être invoqué avec -foption), dans les distributions les plus récentes, la valeur par défaut est plus gracieuse et plus conviviale init 1 -> shutdown -r. Cela garantit que les démons se nettoient avant l'arrêt.
init 6indique au initprocessus d'arrêter tous les processus / daemons générés comme indiqué dans les fichiers init (dans l'ordre inverse de leur démarrage) et enfin d'appeler la shutdown -r nowcommande pour redémarrer la machine
Aujourd'hui, il n'y a pas beaucoup de différence puisque les deux commandes font exactement la même chose et respectent les scripts init utilisés pour démarrer services / démons en appelant les scripts d'arrêt correspondants. Sauf reboot -f -r nowcomme indiqué ci-dessous
Une petite explication tirée des pages de manuel explique pourquoi ce reboot -fn'est pas sûr:
-f, --force
Forcer l'arrêt immédiat, la mise hors tension, le redémarrage. Ne contactez pas le système init.
Modifier:
Oublié de mentionner, dans les prochaines distributions RHEL, vous devriez utiliser la nouvelle systemctlcommande pour lancer poweroff / reboot. Comme indiqué dans les pages de manuel de rebootet shutdownils constituent "une commande héritée disponible uniquement à des fins de compatibilité". et la systemctlméthode sera le seul sûr.
Parfois, mon redémarrage se bloque au SIGTERM, y a-t-il un moyen de savoir pourquoi, et aussi un moyen de temporiser le redémarrage, de sorte que si cela prend trop de temps, le redémarrage est forcé?
CMCDragonkai
2
Ces versions de RHEL ne sont plus "à venir". Comme expliqué plus en détail sur unix.stackexchange.com/a/196014/5132 , sur ces systèmes d'exploitation système, il n'y a pas de différence. Ce ne sont même pas des programmes différents.
JdeBP
Avez-vous tapé en disant init 1 -> shutdown -r?
deed02392
Votre lien est cassé.
whoKnows
8
L’arrêt est préférable car il vous permet de spécifier la raison de l’action drastique - quelque chose que vous devriez toujours faire. Le message sera enregistré dans le journal de bord pour la postérité. Par exemple:
shutdown -r now 'Kernel upgrade requires reboot'
Vous pouvez également effectuer un redémarrage programmé - en spécifiant autre chose que nowl'heure du redémarrage:
shutdown -r 22:00 'Work around kernel memory leak'
Ensuite, vos utilisateurs recevront des rappels périodiques leur indiquant que le temps approche - le processus sera plus ordonné et professionnel.
Sur les unités traditionnelles, rebootet shutdown -r nowsont des commandes très différentes. Dans des conditions d'utilisation normales, son utilisation en reboottoute sécurité est uniquement sécurisée.
shutdown -r nowest la méthode canonique pour éteindre différents * nix et être plus sûr à utiliser en général et est fonctionnellement équivalente à init 6.
Sous FreeBSD, il y a une différence entre rebootet shutdown -r now. De la rebootpage de manuel:
Normalement, l’utilitaire shutdown (8) est utilisé lorsque le système doit être arrêté ou redémarré, ce qui permet aux utilisateurs d’avertir leur destin imminent et de mettre fin proprement à des programmes spécifiques.
Cependant, ce n'est pas une question BSD, comme en témoigne la balise sur la question et l'utilisation d'un niveau d'exécution System 5 dans l'une des commandes. ☺
JdeBP
1
Je sais que c'est une question Linux. Je pensais que quelqu'un trouverait peut-être utile de savoir que sur certains autres systèmes, il y a une différence.
Réponses:
Il n'y a pas de différence en eux. En interne, ils font exactement la même chose:
reboot
utilise lashutdown
commande (avec le commutateur -r). La commande shutdown permet de tuer tous les processus en cours d'exécution, de démonter tous les systèmes de fichiers et enfin d'indiquer au noyau d'émettre la commande d'alimentation ACPI. La source peut être trouvée ici . Dans les distributions plus anciennes, la commande de redémarrage forçait les processus à quitter en émettant leSIGKILL
signal (toujours présent dans les sources, peut être invoqué avec-f
option), dans les distributions les plus récentes, la valeur par défaut est plus gracieuse et plus convivialeinit 1 -> shutdown -r
. Cela garantit que les démons se nettoient avant l'arrêt.init 6
indique auinit
processus d'arrêter tous les processus / daemons générés comme indiqué dans les fichiers init (dans l'ordre inverse de leur démarrage) et enfin d'appeler lashutdown -r now
commande pour redémarrer la machineAujourd'hui, il n'y a pas beaucoup de différence puisque les deux commandes font exactement la même chose et respectent les scripts init utilisés pour démarrer services / démons en appelant les scripts d'arrêt correspondants. Sauf
reboot -f -r now
comme indiqué ci-dessousUne petite explication tirée des pages de manuel explique pourquoi ce
reboot -f
n'est pas sûr:Modifier:
Oublié de mentionner, dans les prochaines distributions RHEL, vous devriez utiliser la nouvelle
systemctl
commande pour lancer poweroff / reboot. Comme indiqué dans les pages de manuel dereboot
etshutdown
ils constituent "une commande héritée disponible uniquement à des fins de compatibilité". et lasystemctl
méthode sera le seul sûr.la source
init 1 -> shutdown -r
?L’arrêt est préférable car il vous permet de spécifier la raison de l’action drastique - quelque chose que vous devriez toujours faire. Le message sera enregistré dans le journal de bord pour la postérité. Par exemple:
shutdown -r now 'Kernel upgrade requires reboot'
Vous pouvez également effectuer un redémarrage programmé - en spécifiant autre chose que
now
l'heure du redémarrage:shutdown -r 22:00 'Work around kernel memory leak'
Ensuite, vos utilisateurs recevront des rappels périodiques leur indiquant que le temps approche - le processus sera plus ordonné et professionnel.
la source
Sur les unités traditionnelles,
reboot
etshutdown -r now
sont des commandes très différentes. Dans des conditions d'utilisation normales, son utilisation enreboot
toute sécurité est uniquement sécurisée.shutdown -r now
est la méthode canonique pour éteindre différents * nix et être plus sûr à utiliser en général et est fonctionnellement équivalente àinit 6
.redémarrage (8) init (8)
la source
Sous FreeBSD, il y a une différence entre
reboot
etshutdown -r now
. De lareboot
page de manuel:la source