Czy można zatrzymać polecenie zamknięcia?


23

Zakładając, że właśnie wprowadziłeś polecenie shutdown -h now(lub coś równoważnego), czy jest realistycznie coś, co możesz zrobić (jeśli jesteś wystarczająco szybki), aby zapobiec wyłączeniu maszyny?


Wydaje mi się shutdown -h now, że po wywołaniu natychmiast tracisz dostęp do wiersza poleceń, halt -ptak więc niewiele możesz zrobić.
— Ken

@Ken: w Ubuntu i Centos połączonych za pomocą kita linia poleceń pozostaje dostępna przez kilka sekund.

Po co mówić „teraz”, jeśli nie masz na myśli „teraz”?
— Fred Nurk

Odpowiedzi:


22

Możesz uruchomić, shutdown -caby anulować już uruchomione zamknięcie.


1
Na początku nie wierzyłem, ale tak. Mówiąc dokładniejctrl+c
— Ken

2
@Ken: shutdown -c i [Ctrl] + [c] są zupełnie inne. shutdown -c to polecenie, które anuluje wcześniej zaplanowane zamknięcie (nawet „teraz” jest zaplanowane w tym sensie --- ale to, czy anulowanie uniemożliwi ponowne uruchomienie, jest w tym przypadku trochę wyścigiem). [Ctrl] + [c] spowoduje, że terminal wygeneruje SIGINT (sygnał przerwania) do dowolnego procesu, który był do niego aktualnie podłączony. Może to działać w przypadku uruchomionego polecenia zamykania, ale jest to raczej przypadkowe pytanie.
— Jim Dennis

1
@Jim Dennis: Zdaję sobie sprawę z różnicy między ctrc+ci shutdown -c. Jednak biorąc pod uwagę szybkość -now opcji, a nie jej zaplanowane rodzeństwo, ctrl+cbyłaby to najszybsza droga do tego celu. Nie wierzyłem, że możesz zatrzymać natychmiastowe zamknięcie, nawet bardziej zaskoczony, że możesz to przerwać, ale najwyraźniej możesz, ale to wyścig, jak powiedziałeś.
— Ken

13

Jeśli jesteś wystarczająco szybki, możesz wydać init 2(lub dowolny poziom pracy, jaki chcesz), a to prawdopodobnie zatrzyma zamknięcie systemu. Wszystko, co wiąże się z zabiciem polecenia zamknięcia, zakończy się niepowodzeniem, ponieważ polecenie działa zbyt szybko

Próbowałem tego z poniższym skryptem, a nawet nie jest wystarczająco szybki, aby zatrzymać zamknięcie

#!/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

Gdzie równie interaktywnie

shutdown -h now
init 2 

system nie działa.


1

Ze strony podręcznika FreeBSD:

Zaplanowane zamknięcie można anulować, zabijając proces zamykania (wystarczy SIGTERM).

Więc killall shutdowndziała na BSD, gdy nastąpi zaplanowane wyłączenie (np shudown -h +5.).

Nie sądzę, aby można było anulować natychmiastowe wyłączenie ( shutdown -h now) w prawdziwym scenariuszu.


0

załóżmy, że wysłałeś komunikat o ponownym uruchomieniu lub zamknięciu do wszystkich terminali w celu konserwacji, że „serwer zamierza się zrestartować lub zamknąć w celu konserwacji w ciągu 10 minut”

Tego rodzaju polecenia można anulować.

wystarczy nacisnąć Ctrl+C

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.