Perbedaan antara reboot -n dan echo b> / proc / sysrq-trigger?

8

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?

sh-beta
sumber
Mengapa Anda memilih untuk menutup ini?
sh-beta
Uji dan coba;) Tapi sungguh, mengapa Anda melakukan ini?
ewwhite
Saya berharap saya melihat ini ketika ditanya; Saya akan memigrasikannya ke pertukaran tumpukan Unix, tapi sayangnya itu terlalu tua untuk dimigrasi :( Jika ini masih merupakan masalah yang Anda inginkan jawabannya, saya sarankan untuk memposting ulang di sana: unix.stackexchange.com
Mark Henderson

Jawaban:

9

Ini /sbin/rebootadalah 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-triggertidak memerlukan akses sistem file.

Mikko Rantalainen
sumber
Nah, gema juga biner, bukan? Saya menemukan situasi di mana saya benar-benar perlu me-reboot server, dan benar-benar membutuhkannya untuk reboot dan tidak terjebak di suatu tempat selama shutdown. Jadi, alih-alih mengambil risiko harus pergi ke pusat data hanya masalah echo b> / proc / sysrq-trigger. Tetapi biasanya saya lakukan:$ 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
Stefan
echobiasanya shell builtin sehingga tersedia jika Anda memiliki prompt shell. Ya, /bin/echoada juga, karena dengan aturan POSIX semua perintah harus ada di jalur tetapi dapat diganti dengan implementasi shell untuk meningkatkan kinerja. Ini echodigunakan begitu sering sehingga hanya shell yang sangat sangat dasar tidak mengimplementasikannya. (Bandingkan help echovs. man echo)
Mikko Rantalainen