Apakah ada cara tercepat untuk mematikan sistem?

20

Atau shutdown -h nowtercepat yang bisa didapat?

Saya mencari beberapa syscall atau yang serupa yang akan memungkinkan untuk melewatkan banyak hal yang dilakukan sebelum shutdown (khususnya untuk peduli tentang proses yang sedang berjalan).

Paling-paling saya ingin solusi yang berhubungan dengan kernel, tidak mengetahui init-middleware (suka systemdatau upstart).

Risiko yang terkait dengan membunuh secara langsung semua layanan seperti cangkir / apache / pulseaudio dll ... Saya tidak akan peduli ....

komentar: solusinya harus perangkat lunak-wakil. Menekan tombol pada perangkat bukanlah yang saya cari.

humanityANDpeace
sumber
8
"Risiko yang terkait dengan membunuh secara langsung semua layanan seperti cangkir / apache / pulseaudio dll ... Saya tidak akan peduli ...." -> Apakah Anda yakin? Meninggalkan perangkat lunak yang kompleks dalam kondisi yang tidak konsisten dapat menyebabkan kejutan tidak menyenangkan saat digunakan berikutnya. Mungkin Anda harus mempertimbangkan untuk menonaktifkan layanan yang tidak banyak Anda gunakan (mis. Cangkir, apache); Anda selalu dapat memulai dan menghentikan hal-hal itu secara manual saat Anda ingin menggunakannya.
goldilocks
Metode yang saya cari adalah saat di mana saya ingin menghindari orang memiliki akses ke PC saya. Setiap keterlambatan mematikan memungkinkan kesalahan. Saya agak kehilangan data lalu memaparkannya.
humanityANDpeace
2
Kunjungi juga ini
Pandya
8
Ada sebuah ide. Mulai menabung untuk beberapa perangkat keras baru.
John WH Smith
sudo shutdown -P 0 Saya menggunakan itu dan memulai proses mematikan segera, apa pun aplikasinya terbuka
gkmohit

Jawaban:

30

Itu tidak mendapatkan jauh lebih cepat daripada menggunakan fungsionalitas System Request (SysRq) dan kemudian memicu langsung reboot.

Ini adalah kombinasi kunci yang dipahami oleh kernel.

Aktifkan SysRq:

echo 1 > /proc/sys/kernel/sysrq

Sekarang, kirim ke reboot.

echo b > /proc/sysrq-trigger

b - Segera reboot sistem, tanpa melepas atau menyinkronkan sistem file.

catatan:

Meskipun ini adalah rebootitu akan berperilaku seperti kekuatan telah terputus, yang tidak direkomendasikan.

Jika Anda ingin syncdan umountsistem file sebelumnya, gunakan:

echo s > /proc/sysrq-trigger
echo u > /proc/sysrq-trigger

atau jika Anda hanya ingin mematikan sistem maka:

echo o > /proc/sysrq-trigger

Kombinasi tombol ajaib

Ada juga kombinasi kunci yang digunakan yang ditafsirkan oleh kernel:

Alt+ SysRq / Print Screen+Command Key

Tombol Perintah:

R- Kendalikan keyboard kembali dari X.
E- Kirim SIGTERM ke semua proses, yang memungkinkan mereka untuk mengakhiri dengan anggun.
I- Kirim SIGKILL ke semua proses, memaksa mereka untuk segera berakhir.
S- Siram data ke disk.
U- Remount semua sistem file hanya-baca.
B- Reboot.

Mengutip dari Magic SysRq Key Wiki :

Penggunaan kunci SysRq ajaib yang umum adalah untuk melakukan reboot yang aman dari komputer Linux yang sebelumnya terkunci.

  1. Tahan Altdan SysRq(tombol Print Screen).
  2. Sambil menahannya, ketikkan kunci berikut secara berurutan, terpisah beberapa detik: REISUB .
  3. Komputer harus reboot.

Cara untuk mengingat ini adalah:

" R eboot E ven I f S ystem U tterly B roken" atau cukup kata " BUSIER " baca terbalik.

Referensi

Kunci SysRq Ajaib Wiki
Fedora SysRq

geedoubleya
sumber
11
Penting untuk dicatat bahwa sistem yang bersih dapat membutuhkan waktu kurang dari 2 detik untuk dimatikan. Ketika saya memanggil poweroffmesin Arch saya, saya bahkan tidak bisa melihat log shutdown sedang dicetak di layar ...
John WH Smith
Sebelum gema kedua, Anda ingin menjalankan sync( linux.about.com/library/cmd/blcmdl8_sync.htm ), yang akan memastikan bahwa buffer ditulis ke disk, termasuk superblok.
Arcege
Anda menyarankan bagar echod tidak o. Apakah lebih baik?
humanityANDpeace
Itu tergantung apa yang Anda maksud dengan lebih baik. Walaupun bopsinya sangat cepat, ini bukan syncdisk, yang tidak ideal, ada banyak opsi yang menyediakan cara untuk mengurangi waktu shutdown, beberapa lebih ekstrim daripada yang lain. Ada juga panicpilihan. Baca wiki dan coba-coba untuk melihat apa yang paling memenuhi kebutuhan Anda.
geedoubleya
Nah pada sistem saya yang kacau echo o /proc/sysrq-triggertidak membuat hang. Sistem tetap menyala. Memang bsistemnya hilang. Namun itu reboot yang berarti bahwa RAM dapat disimpan, yang merupakan kerentanan saya ingin bopsi dengan sistem mati pada akhirnya. Sayangnya ini tidak bekerja dengan oopsi di sistem saya. Terima kasih atas sarannya untuk Anda dan juga @Pandya
humanityANDpeace
8

Pendekatan yang buruk adalah shutdown -h -n now.

Perhatikan bahwa ini tidak akan melakukan pembersihan, sehingga sistem file mungkin tidak konsisten, basis data rusak dll., Tetapi mematikan sistem dengan sangat cepat.

Simon Richter
sumber
1
terima kasih, ini kedengarannya menarik: apakah -nopsi ini didokumentasikan dan masih dalam versi shutdown saat ini?
humanityANDpeace
1
Ya, itu standar. Ini secara langsung memberitahu kernel untuk menjatuhkan semuanya. Perintah ini biasanya digunakan dari skrip shutdown terakhir, ketika shutdown reguler selesai.
Simon Richter
7
Tapi saya tidak bisa cukup menekankan bahwa ini kemungkinan besar akan menyebabkan efek buruk, karena sebagian besar setara dengan menarik steker.
Simon Richter
Sangat sederhana dan efektif. Opsi -n ini adalah persis apa yang saya cari. Terima kasih JAUH untuk menjawab pertanyaan yang diajukan. Anda tidak tahu betapa frustrasinya mengajukan pertanyaan dan mendengar para neckbeards memberi tahu Anda mengapa pertanyaan Anda salah, bukan hanya menjawabnya. Saya akan memilih jawaban ini lima puluh kali jika saya bisa. TERIMA KASIH.
Joshua Pech
4

Beberapa distro menawarkan poweroffperintah yang lebih sederhana daripada shutdown.

Menggunakannya dengan:

poweroff -f

akan melakukan sinkronisasi disk dan kemudian matikan. Ini adalah kompromi yang baik antara menjadi jauh lebih cepat sambil tetap melakukan shutdown minimal untuk memastikan sistem file tidak rusak.

Vality
sumber
0

Coba gunakan perintah init:

init 0
Stuxnet78
sumber