Mengapa kita memerlukan fungsi reboot di binari yang berbeda?
shutdown -r
dan
reboot
Atau apakah mereka berbeda dalam sesuatu?
Mengapa kita memerlukan fungsi reboot di binari yang berbeda?
shutdown -r
dan
reboot
Atau apakah mereka berbeda dalam sesuatu?
Jawaban:
Kami tidak perlu keduanya, tetapi kami memiliki keduanya karena sejarah Unix, dan banyaknya versi.
Dari halaman manual masing-masing:
shutdown lebih bertujuan umum, dan lebih kuat, sedangkan reboot lebih ramah dan mudah diingat.
shutdown memungkinkan Anda untuk menentukan argumen temporal (untuk memulai kembali dalam 5 menit, misalnya) dan memungkinkan Anda untuk melakukan banyak hal selain reboot, termasuk:
Namun, jika Anda hanya ingin me-reboot sistem sekarang, lebih mudah untuk mengetik reboot
daripada shutdown -r now
.
shutdown
penggunaan sekarang sebagai default. Jangan mencoba untuk mendapatkan bantuan untuk shutdown shutdown -h
, terutama tidak pada server di suatu tempat di pusat data.
Kedua perintah melakukan sesuatu yang berbeda, namun mereka akhirnya dapat saling memanggil, itulah sebabnya mereka tampaknya melakukan hal yang sama!
reboot
akan meminta kernel untuk memicu reboot perangkat keras. Namun, itu hanya akan melakukan ini jika sistem siap untuk dimatikan - semua daemon dan proses pengguna harus dihentikan, sistem file di-unmount, dll. Jadi ia memeriksa runlevel sistem, dan jika bukan 0 atau 6, maka ia akan benar-benar memanggil yang shutdown
perintah untuk Anda.
shutdown
menyebabkan runlevel sistem diubah. Perubahan runlevel (ke 0 untuk berhenti atau 6 untuk reboot) menjalankan banyak skrip di /etc/rc0.d atau rc6.d yang mematikan daemon, unmount filesystems, dll. Akhirnya skrip ini memanggil halt
atau reboot
- kali ini sistem berada dalam runlevel yang benar dan mereka memerintahkan kernel untuk reboot (atau menghentikan).
Selain apa yang ditulis iconoclast, ada perbedaan penting antara kedua program: shutdown
ada di /sbin
, sementara reboot
ada di/usr/bin
.
Mengapa ini penting, Anda bertanya? Saya akan memberitahu Anda.
Hal-hal di bawah ini /usr
adalah hal-hal yang tidak harus tersedia sampai sistem di-boot cukup jauh sehingga sistem berfungsi minimal. Direktori tingkat atas yang secara tradisional tidak pernah dipasang pada filesystem terpisah - /bin
, /etc
, /sbin
, dll - yang diharapkan akan tersedia sementara sistem mencapai keadaan ini minimal berguna. Ada berbagai implikasi dari desain ini; misalnya, itu adalah gaya yang buruk untuk menulis klausa "stop" dari skrip init SysV yang menggunakan program di /usr/bin
jika ada alternatif di /bin
atau /sbin
.
shutdown
adalah utilitas utama, yang selalu tersedia. reboot
adalah utilitas kenyamanan saja.
reboot
ada di /sbin
dalam Debian (dengan SysVinit) dan Ubuntu (dengan pemula).