Pourquoi l'exécution de «sudo shutdown now» ne s'arrête-t-elle pas?

87

Quand j'émets ce qui suit:

sudo shutdown now

..mon serveur Ubuntu 14.04 récemment mis en service ne s’arrête pas. Il s’arrête avec le message suivant:

* Stopping System V runlevel compatibility
Give root password for maintenance:
(or type Control-D to continue):

Si je tape le mot de passe root, la machine reste simplement là à l'invite du shell.

Jon Cage
la source
5
Électeurs proches: Ce n'est pas un doublon. Alors que les questions sont similaires, celle-ci concerne une commande spécifique, l’autre une méthode générale pour arrêter la machine à partir de la ligne de commande.
Seth

Réponses:

138

Traditionnellement, la commande sudo shutdown nowvous amène au niveau d'exécution 1 (mode de récupération); cela se produira à la fois pour Upstart et SysV init. Pour obtenir ce que vous voulez, c'est-à-dire pour éteindre l'ordinateur correctement, vous devez donner le -hcommutateur à shutdown.

Une chose à noter ici est que haltfermera tous les processus, éteindra les CPU et retournera le contrôle à un moniteur ROM de la carte mère, obligeant l’utilisateur à appuyer sur le bouton d’alimentation pour couper l’alimentation, poweroffpuis éteindre les CPU. éteindra simplement l’alimentation, ce qui entraînera un arrêt correct.

Le -hcommutateur de shutdownsoit haltou poweroffl'ordinateur, la décision sera prise par le système même si dans Ubuntu j'ai vu que ce serait normalement poweroffla machine. Pour être sûr, vous pouvez utiliser le -Pcommutateur avec shutdownà poweroffl'ordinateur.

Pour résumer, voici les commandes disponibles pour poweroff( non halt ) un ordinateur:

sudo shutdown -h now
sudo shutdown -P now
sudo poweroff
sudo halt -p
sudo init 0

Les commandes poweroffet haltinvoquent essentiellement shutdown(sauf pour le poweroff -f). sudo poweroffet sudo halt -psont exactement comme sudo shutdown -P now. La commande vous sudo init 0mènera au niveau d'exécution 0 ( arrêt ).

Maintenant, que se passe-t-il si vous voulez arrêter avec force, c'est-à-dire que vous ne voulez pas attendre que les processus se ferment normalement? Dans ce cas, vous pouvez utiliser:

sudo poweroff -f

Cela ne va pas utiliser shutdown. Au contraire, il appellera l' reboot(2)appel système (utilisé pour le redémarrage, l'extinction et l'arrêt) afin d'éteindre l'ordinateur instantanément.

heemayl
la source
2
Ou, combinez l'arrêt 'maintenant' avec 'poweroff':sudo shutdown -P now
david6
3
Qu'entendez-vous par "fermeture forcée"? Selon une page de manuel , l’ -foption saute simplement fsckau redémarrage. Et selon la page de manuel Ubuntu, il n’existe aucune option de ce type.
Ruslan
1
@Ruslan: Peut-être que cela confond avec halt -f/ poweroff -f, qui contourne init et dit directement au noyau de couper l'alimentation. C'est énergique.
Grawity
1
Mon ordinateur portable vous remercie! En fait, j'étais accroché à celui-ci et j'utilisais toujours le bouton d'alimentation, mais maintenant je sais! L'arrêt maintenait mon système sous tension, mais la mise hors tension l'éteignait. Merci beaucoup! :-)
Terrance
1
@RGG Je vous recommanderais de l'exécuter syncavant cette commande, car celle-ci ignore tout ce qui pourrait encore se trouver dans le cache. syncforcera les écritures en cache sur le disque, vous pourrez alors le mettre hors tension.
Terrance
15

Je suis pratiquement sûr que la commande correcte doit contenir l'option "-h" (arrêt). Essaye ça:

sudo shutdown -h now
pille1842
la source
6

C'est un héritage de l'époque où la machine physique ne pouvait pas s'éteindre d'elle-même. Par exemple, la commande halt sudo haltmet fin à tous les programmes et décharge presque tout de la RAM, prête à être mise hors tension. Cependant, si vous exécutez sudo halt -p, tout cela sera exécuté , puis le système sera mis hors tension ou, dans le cas de la shutdowncommande, vous aurez besoin de cette -aoption, même si je l'utilise personnellement halt.

John Cave
la source
Que se passe-t-il si j'arrête toujours le PC avec cette commande?
Nullpointer
-1

J'ai toujours utilisé ce qui suit

sudo shutdown -a now

ou redémarrer immédiatement après l'arrêt

sudo shutdown -r now

En regardant l'option d'aide à l'arrêt, elle ne répertorie pas -a comme une commande appropriée, mais j'aurais pu jurer il y a longtemps -a était en état d'abandon ou quelque chose du genre. Quoi qu'il en soit, j'ai continué à l'utiliser et cela a fonctionné pendant toutes ces années, mais il semble que shutdown -h est maintenant la bonne option.

NPIC
la source
1
Vous pensez peut-être à la commande Windows shutdown /a, qui annule un arrêt (équivalent à shutdown -cUbuntu).
Deltab
@ deltab Ouais, ça doit être ce à quoi je pense alors. Étrange que cet arrêt -a fonctionne pour moi cependant.
NPIC