Sự khác nhau giữa khởi động lại -n và echo b> / Proc / sysrq-trigger?


8

Trên Linux (cụ thể là các dẫn xuất của RHEL CentOS và Fedora), có sự khác biệt nào không?

echo b > /proc/sysrq-trigger

"Ngay lập tức khởi động lại hệ thống, mà không ngắt kết nối hoặc đồng bộ hóa các hệ thống tập tin", theo Wikipedia.

reboot -n

"Không đồng bộ hóa trước khi khởi động lại hoặc tạm dừng. Lưu ý rằng trình điều khiển kernel và bộ lưu trữ vẫn có thể đồng bộ hóa", theo man 8 khởi động lại. Có thực sự có sự khác biệt trong hành vi này?


Tại sao bạn sẽ bỏ phiếu để đóng này?
sh-beta

Kiểm tra nó và thử nó;) Nhưng thực sự, tại sao bạn làm điều này?
ewwhite

Tôi ước tôi đã nhìn thấy điều này khi nó được hỏi; Tôi đã chuyển nó sang trao đổi ngăn xếp Unix, nhưng than ôi quá cũ để được di chuyển :( Nếu đây vẫn là vấn đề bạn muốn có câu trả lời cho tôi, tôi khuyên bạn nên đăng lại ở đó: unix.stackexchange.com
Đánh dấu Henderson

Câu trả lời:


9

Đây /sbin/rebootlà một thực thi thường xuyên trong hệ thống tập tin. Nếu hệ thống tập tin của bạn bị hos (ví dụ treo trình điều khiển hệ thống tập tin, treo phần cứng SATA hoặc treo chương trình cơ sở đĩa), những thay đổi để thực hiện thành công mà thực thi đó là không có gì. Mặt khác, giả sử rằng bạn đã mở shell gốc, echo b > /proc/sysrq-triggerkhông cần bất kỳ quyền truy cập hệ thống tệp nào.


Vâng, echo cũng là một nhị phân, phải không? Tôi đã vấp phải những tình huống mà tôi thực sự cần phải khởi động lại máy chủ và thực sự cần nó để được khởi động lại và không bị kẹt ở một nơi nào đó trong khi tắt máy. Vì vậy, thay vì mạo hiểm phải đến trung tâm dữ liệu, chỉ cần phát ra tiếng vang b> / Proc / sysrq-trigger. Nhưng thường thì tôi làm:$ 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

echothường là một shell dựng sẵn để nó có sẵn nếu bạn có dấu nhắc shell. Có, cũng /bin/echotồn tại, bởi vì theo quy tắc POSIX, tất cả các lệnh phải tồn tại trong đường dẫn nhưng có thể được thay thế bằng triển khai shell để tăng hiệu suất. Việc echonày được sử dụng thường xuyên đến mức chỉ những vỏ rất cơ bản không thực hiện được. (So ​​sánh help echovới man echo.)
Mikko Rantalainen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.