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?
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
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”
shutdown -h now
, że po wywołaniu natychmiast tracisz dostęp do wiersza poleceń,halt -p
tak więc niewiele możesz zrobić.Odpowiedzi:
Możesz uruchomić,
shutdown -c
aby anulować już uruchomione zamknięcie.źródło
ctrl+c
ctrc+c
ishutdown -c
. Jednak biorąc pod uwagę szybkość-now
opcji, a nie jej zaplanowane rodzeństwo,ctrl+c
był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ś.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 szybkoPróbowałem tego z poniższym skryptem, a nawet nie jest wystarczająco szybki, aby zatrzymać zamknięcie
Gdzie równie interaktywnie
system nie działa.
źródło
Ze strony podręcznika FreeBSD:
Więc
killall shutdown
działa na BSD, gdy nastąpi zaplanowane wyłączenie (npshudown -h +5
.).Nie sądzę, aby można było anulować natychmiastowe wyłączenie (
shutdown -h now
) w prawdziwym scenariuszu.źródło
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
źródło