Di Linux (khususnya, derivatif RHEL CentOS dan Fedora), apakah ada perbedaan?
echo b > /proc/sysrq-trigger
"Segera reboot sistem, tanpa melepas atau menyinkronkan sistem file," menurut Wikipedia.
reboot -n
"Jangan menyinkronkan sebelum reboot atau berhenti. Perhatikan bahwa kernel dan driver penyimpanan mungkin masih disinkronkan," menurut man 8 reboot. Apakah sebenarnya ada perbedaan perilaku ini?
Jawaban:
Ini
/sbin/reboot
adalah executable reguler dalam sistem file. Jika filesystem Anda disembunyikan (mis. Hang filesystem driver, hang hardware SATA atau firmware disk), perubahan untuk berhasil mengeksekusi yang dapat dieksekusi sangat tipis. Di sisi lain, dengan asumsi bahwa Anda sudah memiliki root shell terbuka,echo b > /proc/sysrq-trigger
tidak memerlukan akses sistem file.sumber
$ sync; echo b > /proc/sysrq-trigger
$ whereis echo echo: /usr/bin/echo /usr/share/man/man1p/echo.1p.gz /usr/share/man/man1/echo.1.gz
$ whereis reboot reboot: /usr/sbin/reboot /usr/share/man/man2/reboot.2.gz /usr/share/man/man8/reboot.8.gz
echo
biasanya shell builtin sehingga tersedia jika Anda memiliki prompt shell. Ya,/bin/echo
ada juga, karena dengan aturan POSIX semua perintah harus ada di jalur tetapi dapat diganti dengan implementasi shell untuk meningkatkan kinerja. Iniecho
digunakan begitu sering sehingga hanya shell yang sangat sangat dasar tidak mengimplementasikannya. (Bandingkanhelp echo
vs.man echo
)