Est-il possible d'arrêter une commande d'arrêt?

23

En supposant que vous venez de saisir la commande shutdown -h now(ou quelque chose d'équivalent), y a-t-il réellement quelque chose que vous pouvez faire (si vous êtes assez rapide) pour empêcher la machine de s'arrêter?

Jonathan
la source
Une fois que vous invoquez shutdown -h now, je pense que vous perdez immédiatement l'accès à la ligne de commande de la même halt -pmanière, vous ne pouvez donc pas faire grand-chose.
Ken
@Ken: sur Ubuntu et Centos connectés via putty, la ligne de commande reste disponible pendant quelques secondes.
Pourquoi dire "maintenant" si vous ne voulez pas dire "maintenant"?
Fred Nurk

Réponses:

22

Vous pouvez exécuter shutdown -cpour annuler un arrêt déjà en cours.

dogbane
la source
1
Je n'y ai pas cru au début, mais oui. Plus précisémentctrl+c
Ken
2
@Ken: shutdown -c et [Ctrl] + [c] sont entièrement différents. shutdown -c est une commande qui annule un arrêt planifié précédemment (même "maintenant" est programmé dans ce sens --- mais si l'annulation empêchera le redémarrage est un peu une course dans ce cas). [Ctrl] + [c] amènera votre terminal à générer un SIGINT (signal d'interruption) selon le processus qui lui est actuellement attaché. Cela peut fonctionner sur une commande d'arrêt en cours d'exécution, mais cela est plutôt accessoire à votre question.
Jim Dennis
1
@ Jim Dennis: Je suis conscient de la différence entre ctrc+cet shutdown -c. Mais étant donné la vitesse de l' -now option plutôt que celle de son frère prévu, ce ctrl+cserait la voie la plus rapide à cette fin. Je ne pensais pas que vous pouviez arrêter un arrêt immanent, encore plus surpris que vous puissiez l'interrompre, mais apparemment vous le pouvez, mais c'est une course comme vous l'avez dit.
Ken
13

Si vous êtes assez rapide, vous pouvez émettre un init 2(ou le niveau d'exécution souhaité) et cela arrêtera probablement l'arrêt. Tout ce qui implique de tuer la commande d'arrêt échouera car la commande s'exécute trop rapidement

J'ai essayé cela avec le script ci-dessous et et même ce n'est pas assez rapide pour arrêter l'arrêt

#!/bin/bash
shutdown -h now
shutdown -c "Aborting Shutdown"

Broadcast message from iain@iain-ubuntu
        (/dev/pts/0) at 16:50 ...

The system is going down for halt NOW!
shutdown: Cannot find pid of running shutdown

Où aussi interactivement

shutdown -h now
init 2 

le système reste en place.


la source
1

Depuis la page de manuel de FreeBSD:

Un arrêt planifié peut être annulé en tuant le processus d'arrêt (un SIGTERM devrait suffire).

Fonctionne donc killall shutdownsur BSD en cas d'arrêt programmé (par exemple shudown -h +5).

Je ne pense pas qu'il soit possible d'annuler un arrêt immédiat ( shutdown -h now) dans un scénario réel.

Marián Černý
la source
0

supposons que vous ayez envoyé un message de redémarrage ou d'arrêt à tous les terminaux à des fins de maintenance indiquant que le "serveur va redémarrer ou s'arrêter à des fins de maintenance dans les 10 minutes"

Ce type de commande peut annuler.

appuyez simplement sur Ctrl+C

Manjur
la source