web-dev-qa-db-fra.com

Pourquoi l'exécution de "Sudo shutdown now" ne s'arrête-t-elle pas?

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.

83
Jon Cage

Traditionnellement, la commande Sudo shutdown now vous 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 éteindre correctement l'ordinateur, vous devez attribuer le commutateur -h à shutdownname__.

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

Le commutateur -h de shutdownsera haltou poweroffde l'ordinateur, la décision sera prise par le système bien que j'ai vu qu'il s'agirait normalement de poweroffname__. Pour en être sûr, vous pouvez utiliser le commutateur -P avec shutdownà poweroffde l'ordinateur.

Pour résumer, voici les commandes disponibles pour poweroff( not not haltname__) à un ordinateur:

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

Les commandes poweroffet haltinvoquent essentiellement shutdown(à l'exception du poweroff -f). Sudo poweroff et Sudo halt -p sont exactement comme Sudo shutdown -P now. La commande Sudo init 0 vous mènera au niveau d'exécution 0 ( shutdown ).

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 n'utilisera pas shutdownname__. Au lieu de cela, il invoquera l'appel système reboot(2) (utilisé pour le redémarrage, l'extinction et l'arrêt) afin d'éteindre l'ordinateur instantanément.

135
heemayl

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

Sudo shutdown -h now
16
pille1842

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 d'arrêt Sudo halt termine tous les programmes et décharge presque tout de la RAM, prêt à mettre hors tension. Cependant, si vous exécutez Sudo halt -p, il fera tout cela, puis signalez au système de se mettre hors tension ou, dans le cas de la commande shutdown, vous avez besoin de l'option -a, je crois, bien que j'utilise personnellement halt.

6
John Cave