Saya tidak menyarankan untuk melakukan hal berikut jika Anda tidak dipaksa oleh alasan yang sangat khusus:
kill -SEGV 1 # should generate a core dumps and kernel panic
kill -ABRT 1 # should generate a core dumps and kernel panic
kill -9 1 # On old systems worked nowadays not
Itu kasar, brutal dan dapat dianggap setara dengan mencabut kabel listrik ...
Cara yang benar adalah shutdown -h now
dengan sudo
sebelum saat dibutuhkan.
Mungkin saya harus mengatakan halal ; lihat di bawah atau lebih baik tl; dr.
Beberapa kata lagi , alias Ceritanya, Bab I
Pada awalnya adalah init dan itu akan sampai akhir.
Seluruh Linux tergantung dari kasih sayang dari init [ 1 ] [ 2 ] . Meskipun demikian dan bukan tanpa rasa terima kasih dalam jumlah tertentu, ada saat di mana pengguna root Lord yang baik dapat mengkhianati cinta ini dan tiba-tiba kill
init dengan perintah ( -9
) yang tak terbantahkan .
( Kitab Etiket mengatur penghitungan, adipati dan marquise pengguna untuk meminta sebelum a sudo
).
Kemudian beberapa penyihir membuat mantra untuk melindungi init (dari Kitab man 2 init
)
Satu-satunya sinyal yang dapat dikirim ke ID proses 1, proses init, adalah mereka yang init secara eksplisit telah menginstal penangan sinyal. Hal ini dilakukan untuk memastikan sistem tidak diturunkan secara tidak sengaja.
(Mata-mata kami melaporkan [ U1 ] bahwa init akan menangani 1 HUP 6 ABRT 11 SEGV 15 TERM 30 PWR 2 INT 10 USR1 14 ALRM 17 CHLD 32)
Jadi pengguna root Lord yang baik mempelajari berita dan mengubah perintah di kill -ABRT 1
atau kill -SEGV 1
yang biasanya menghasilkan sebuah kernel panik dan dump inti.
Ini bekerja karena init adalah proses pertama yang dijalankan dan mengambil nomor PID 1 [ 2b ] .
Ini tidak aman, tidak bijaksana dan Anda merasa itu adalah pertanda pertanda buruk dan kutukan tetapi jika Anda tidak bisa secara material meletakkan tangan dan mencabutnya ...
Kutukan : itu tidak akan menulis di log, tidak akan membunuh semua proses & menunggu berakhirnya, itu tidak akan menulis pada HDD dengan benar memperbarui inode juga tidak akan meng-unmount sistem file; bahkan tidak keberatan itu akan menyimpan opsi jendela grafis dan sejarah shell, dan banyak lainnya di luar imajinasi kita ... seperti yang kita katakan setara dengan mencabut chord daya, atau baterai jika laptop.
Cara yang benar
"Non nobis, Domine, non nobis, sed nomini tuo da gloriam.", Templar ksatria moto.
Cara yang sah (benar) adalah dengan menggunakan shutdown
[ 3 ]
sudo shutdown -h now
shutdown mengatur agar sistem diturunkan dengan cara yang aman. Semua pengguna yang masuk diberitahukan bahwa sistem sedang turun dan ...
tetapi dengan -h now
mereka tidak akan memiliki cukup waktu untuk melakukan begitu banyak ...
Beberapa kata lagi , alias Ceritanya, Bab II
Suatu ketika beberapa langkah logis terasa dari langit di atas orang-orang unix:
Setelah proses sistem terbunuh dan sistem file telah dilepas, sistem berhenti / mati atau reboot secara otomatis. Ini dilakukan dengan menggunakan perintah berhenti atau reboot, yang menyinkronkan perubahan ke disk dan kemudian melakukan penghentian / matikan atau boot ulang yang sebenarnya. [ 4 ]
Memang, saat ini, kita tidak percaya lagi pada adanya tiga Moirai [ 5 ] dari dunia Linux , reboot
, poweroff
dan halt
[ 6 ] : yang ilmu pengetahuan modern dari ls -l $(which poweroff halt reboot)
dan salah man reboot
, menyebar baru cahaya pada zaman kegelapan ini dan mengungkapkan kami bahwa hanya ada satu perintah yang benar yang mem-parsing semua opsi mereka sehingga kita akhirnya bebas untuk meminta tindakan yang bertentangan dengan nama perintah mereka! ( halt -p
atau reboot -p
untuk poweroff
, shutdown -r
untuk reboot
...)
Sekarang semua tampak jelas dan nyaman untuk semua, rumor mengklaim [ 7 ] yang di bawah dari toolset systemd [ 8 ] revolusi dilakukan meninggalkan menyadari seluruh overworld . Berkat pasukan kompatibilitas mundur kita tidak melihat sama sekali bahwa reboot, poweroff, berhenti [ 6 ] dan bahkan telinit [ 9 ] dan shutdown [ 3 ] semuanya sudah terikat pada systemctl raja baru [ 10 ]. Tolong dengarkan seluruh cerita dari suara asli JdeBP The Bard [ 9 ] karena saya tidak punya nafas lagi.
Jika Anda adalah pengikut kultus Ubuntu, Anda mungkin masih tetap sadar untuk sementara waktu dari semua klaim [ 11 ] .
Tengah Bumi halt -f
, init
, telinit
, systemctl
Mencari solusi yang lebih cepat dari yang benar tetapi juga bijaksana.
systemctl --force --force poweroff # the most close to kill -9 1
systemctl --force poweroff # rough but still safe
sudo halt -f # rough
sudo telinit 0 # or 6 # safe
kill -SIGINT 1 # cause reboot as the reboot command
kill -SIGRTMIN+4 1 # cause shutdown as the halt command
Bahwa Anda berada di bawah systemd atau tidak Anda harus dapat menghentikan komputer tanpa menerapkan semua prosedur shudown yang benar (dan lebih cepat):
halt -f
: menentukan opsi-f
(perhatikan bahwa Anda harus -f
menghindari prosedur mematikan) dengan perintah di atas, dengan sudo poweroff -f
atau bahkan mungkin dengan sudo reboot -f -h
. Memang kita dapat membaca dari man reboot
(dan setara) tentang perlunya menentukan opsi -f
untuk menghindari panggilan shutdown:
Ketika dipanggil dengan --force atau ketika di runlevel 0 atau 6, alat ini memanggil reboot (2) system call itu sendiri (dengan argumen REBOOTCOMMAND yang disahkan) dan langsung reboot sistem .
Kalau tidak, ini hanya memanggil alat shutdown (8) dengan argumen yang sesuai tanpa melewati argumen REBOOTCOMMAND.
-f, --force
Tidak menjalankan shutdown (8) dan sebagai gantinya melakukan tindakan yang sebenarnya Anda harapkan dari namanya .
Selain itu Anda dapat menggunakan telinit
[ 2b ] (atau init
langsung)
sudo telinit 0 # or 6
untuk memberitahu init untuk mengubah runlevel ... tetapi jika demikian mengapa tidak membunuhnya secara langsung?
Di bawah systemd Anda dapat menggunakan opsi ganda yang tidak bijaksana --force --force
systemctl --force --force poweroff
Membaca dari manual systemctl [ 10 ]
-f, --force
Ketika digunakan dengan mengaktifkan, timpa setiap symlink yang saling bertentangan.
Ketika digunakan dengan halt
, poweroff
,reboot
atau kexec, mengeksekusi operasi yang dipilih tanpa mematikan semua unit. Namun, semua proses akan dimatikan secara paksa dan semua sistem file dilepas atau di-read-only. Karenanya ini adalah opsi yang drastis tetapi relatif aman untuk meminta reboot segera. Jika --force ditentukan dua kali untuk operasi ini, mereka akan segera dieksekusi tanpa menghentikan proses apa pun atau melepas sistem file apa pun. Peringatan: menentukan - memaksa dua kali dengan salah satu dari operasi ini dapat mengakibatkan hilangnya data.
Ps> Ambil inspirasi tentang varian dari ekor JdeBP The Bard [ 7 ] .