Apa perbedaan antara reboot, init 6 dan shutdown -r sekarang?


Jawaban:


83

Tidak ada perbedaan di dalamnya. Secara internal mereka melakukan hal yang persis sama:

  • rebootmenggunakan shutdownperintah (dengan -r switch). Perintah shutdown digunakan untuk mematikan semua proses yang berjalan, unmount semua sistem file dan akhirnya memberitahu kernel untuk mengeluarkan perintah daya ACPI. Sumbernya dapat ditemukan di sini . Dalam distro yang lebih tua, perintah reboot memaksa proses untuk keluar dengan mengeluarkan SIGKILLsinyal (masih ditemukan di sumber, dapat dipanggil dengan -fopsi), dalam kebanyakan distro baru-baru ini default ke yang lebih anggun dan ramah init init 1 -> shutdown -r. Ini memastikan bahwa daemon membersihkan diri sebelum dimatikan.

  • init 6memberitahu initproses untuk mematikan semua proses / daemon yang muncul seperti yang tertulis dalam file init (dalam urutan terbalik yang dimulai) dan terakhir memohon shutdown -r nowperintah untuk me-reboot mesin

Saat ini tidak ada banyak perbedaan karena kedua perintah melakukan hal yang persis sama, dan mereka menghormati skrip init yang digunakan untuk memulai layanan / daemon dengan menjalankan skrip shutdown untuk mereka. Kecuali untuk yang reboot -f -r nowdisebutkan di bawah ini

Ada sedikit penjelasan yang diambil dari manual mengapa reboot -ftidak aman:

  -f, --force
    Menghentikan paksa segera, matikan, reboot. Jangan hubungi sistem init.

Sunting:

Lupa menyebutkan, dalam distribusi RHEL mendatang Anda harus menggunakan systemctlperintah baru untuk mengeluarkan poweroff / reboot. Sebagaimana dinyatakan dalam halaman manual rebootdan shutdownmereka "perintah warisan yang tersedia hanya untuk kompatibilitas." dan systemctlmetode akan menjadi satu-satunya yang aman.


Kadang-kadang reboot saya hang di SIGTERM, apakah ada cara untuk mengetahui alasannya, dan apakah ada cara untuk mematikan boot ulang, sehingga jika terlalu lama, itu akan memaksa reboot?
— CMCDragonkai

2
Versi RHEL itu tidak lagi "akan datang". ☺ Seperti dijelaskan lebih terinci di unix.stackexchange.com/a/196014/5132 , pada sistem operasi systemd tersebut tidak ada perbedaan sama sekali. Mereka bahkan bukan program yang berbeda.
— JdeBP

Apakah Anda salah mengetik dengan mengatakan init 1 -> shutdown -r?
— deed02392

Tautan Anda rusak.
— whoKnows

8

Shutdown lebih disukai karena memungkinkan Anda untuk menentukan alasan tindakan drastis - sesuatu yang harus selalu Anda lakukan. Pesan akan direkam dalam log untuk anak cucu. Sebagai contoh:

shutdown -r now 'Kernel upgrade requires reboot'

Anda juga dapat melakukan reboot yang dijadwalkan - dengan menentukan sesuatu selain dari nowwaktu reboot:

shutdown -r 22:00 'Work around kernel memory leak'

Kemudian pengguna Anda akan mendapatkan pengingat berkala untuk keluar saat waktu semakin dekat - prosesnya akan lebih teratur dan profesional.


5

Pada kesatuan tradisional, rebootdan shutdown -r nowperintah yang sangat berbeda. Dalam penggunaan umum, reboothanya aman untuk digunakan dalam mode pengguna tunggal.

shutdown -r nowadalah metode kanonik untuk mematikan berbagai * nix dan lebih aman untuk digunakan secara umum dan secara fungsional setara dengan init 6.

init (8) reboot (8)


4

Di FreeBSD ada perbedaan antara rebootdan shutdown -r now. Dari reboothalaman manual:

Biasanya, utilitas shutdown (8) digunakan ketika sistem perlu dihentikan atau dihidupkan ulang, memberi pengguna peringatan lebih lanjut tentang malapetaka yang akan datang mereka dan dengan bersih menghentikan program tertentu.


1
Ini bukan pertanyaan BSD, seperti yang dibuktikan oleh tag pada pertanyaan dan penggunaan run-level System 5 di salah satu perintah. ☺
— JdeBP

1
Saya tahu ini adalah pertanyaan Linux. Saya pikir seseorang mungkin berguna untuk mengetahui bahwa pada beberapa sistem lain perbedaannya.
— Marián Černý
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.