Apakah mungkin untuk menghentikan perintah shutdown?

23

Dengan asumsi Anda baru saja memasukkan perintah shutdown -h now(atau sesuatu yang setara), adakah realistis yang dapat Anda lakukan (jika Anda cukup cepat) untuk mencegah mesin mati?

Jonathan
sumber
Setelah Anda memohon shutdown -h now, saya percaya Anda kehilangan akses command line segera mirip halt -psehingga tidak banyak yang bisa Anda lakukan.
Ken
@ Ken: di Ubuntu dan Centos terhubung melalui dempul, baris perintah tetap tersedia selama beberapa detik.
Mengapa mengatakan "sekarang" jika Anda tidak bermaksud "sekarang"?
Fred Nurk

Jawaban:

22

Anda dapat menjalankan shutdown -cuntuk membatalkan pematian yang sudah berjalan.

dogbane
sumber
1
Awalnya tidak percaya, tapi ya. Lebih khususctrl+c
Ken
2
@ Ken: shutdown -c dan [Ctrl] + [c] sama sekali berbeda. shutdown -c adalah perintah yang membatalkan shutdown yang sebelumnya dijadwalkan (bahkan "sekarang" dijadwalkan dalam pengertian ini --- tetapi apakah pembatalan akan mencegah reboot adalah sedikit perlombaan dalam kasus itu). [Ctrl] + [c] akan menyebabkan terminal Anda menghasilkan SIGINT (sinyal interupsi) ke proses mana pun yang saat itu melekat padanya. Ini mungkin bekerja pada perintah shutdown yang sedang berjalan tapi itu agak tidak disengaja untuk pertanyaan Anda.
Jim Dennis
1
@ Jim Dennis: Saya tahu perbedaan antara ctrc+cdan shutdown -c. Tetapi mengingat kecepatan -now pilihan daripada saudara kandungnya yang dijadwalkan, ctrl+cakan menjadi rute tercepat untuk tujuan itu. Saya tidak percaya Anda bisa menghentikan shutdown imanen, bahkan lebih terkejut bahwa Anda bisa menyela itu, tetapi ternyata Anda bisa, tapi itu balapan seperti yang Anda nyatakan.
Ken
13

Jika Anda cukup cepat, Anda dapat mengeluarkan init 2(atau runlevel apa pun yang Anda inginkan) dan itu kemungkinan akan menghentikan shutdown. Apa pun yang melibatkan mematikan perintah penutupan akan gagal karena perintah berjalan terlalu cepat

Saya mencoba ini dengan script di bawah ini dan bahkan itu tidak cukup cepat untuk menghentikan shutdown

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

Dimana secara interaktif

shutdown -h now
init 2 

sistem tetap hidup.


sumber
1

Dari halaman manual FreeBSD:

Shutdown terjadwal dapat dibatalkan dengan mematikan proses shutdown (SIGTERM sudah cukup).

Jadi killall shutdownberfungsi pada BSD ketika ada shutdown yang dijadwalkan (misalnya shudown -h +5).

Saya tidak berpikir itu layak untuk membatalkan shutdown langsung ( shutdown -h now) dalam skenario kehidupan nyata.

Marián Černý
sumber
0

misalkan, Anda mengirim pesan reboot atau shutdown ke semua terminal untuk tujuan pemeliharaan bahwa "server akan reboot atau shutdown untuk tujuan perawatan dalam waktu 10 menit"

Perintah semacam ini dapat membatalkan.

cukup tekan Ctrl+C

Manjur
sumber