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?
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.
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
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"
shutdown -h now
, saya percaya Anda kehilangan akses command line segera miriphalt -p
sehingga tidak banyak yang bisa Anda lakukan.Jawaban:
Anda dapat menjalankan
shutdown -c
untuk membatalkan pematian yang sudah berjalan.sumber
ctrl+c
ctrc+c
danshutdown -c
. Tetapi mengingat kecepatan-now
pilihan daripada saudara kandungnya yang dijadwalkan,ctrl+c
akan 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.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 cepatSaya mencoba ini dengan script di bawah ini dan bahkan itu tidak cukup cepat untuk menghentikan shutdown
Dimana secara interaktif
sistem tetap hidup.
sumber
Dari halaman manual FreeBSD:
Jadi
killall shutdown
berfungsi pada BSD ketika ada shutdown yang dijadwalkan (misalnyashudown -h +5
).Saya tidak berpikir itu layak untuk membatalkan shutdown langsung (
shutdown -h now
) dalam skenario kehidupan nyata.sumber
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
sumber