reboot -n과 echo b의 차이점> / proc / sysrq-trigger?


8

Linux (특히 RHEL 파생물 CentOS 및 Fedora)에서 차이가 있습니까?

echo b > /proc/sysrq-trigger

Wikipedia에 따르면 "파일 시스템을 마운트 해제하거나 동기화하지 않고 시스템을 즉시 재부팅합니다."

reboot -n

man 8 재부팅에 따르면 "재부팅 또는 정지 전에 동기화하지 마십시오. 커널과 스토리지 드라이버는 여전히 동기화 될 수 있습니다." 실제로이 동작에 차이가 있습니까?


왜 이것을 폐쇄하기 위해 투표 하시겠습니까?
— sh-beta

그것을 테스트하고 사용해보십시오;) 그러나 실제로, 왜 이것을하고 있습니까?
— ewwhite

나는 그것이 요청되었을 때 이것을 보았 으면 좋겠다. 나는 유닉스 스택 교환을 통해 마이그레이션 것, 그러나 이것은 아직도 내가 다시 게시가 좋을 것에 당신이 대답을 원하고 문제가있는 경우 슬프게도 그것은 :( 마이그레이션하기에 너무 늙었 : unix.stackexchange.com를
— 마크 헨더슨

답변:


9

은 /sbin/reboot파일 시스템에서 정기적으로 실행 파일입니다. 파일 시스템이 연결되어있는 경우 (예 : 파일 시스템 드라이버 정지, SATA 하드웨어 정지 또는 디스크 펌웨어 정지) 해당 실행 파일을 성공적으로 실행하기위한 변경 사항은 거의 없습니다. 반면에, 루트 쉘이 이미 열려 있다고 가정하면 echo b > /proc/sysrq-trigger파일 시스템 액세스가 필요하지 않습니다.


에코도 바이너리입니다. 서버를 재부팅해야하는 상황이 발생했습니다. 시스템이 재부팅되는 동안 서버가 재부팅되어 어떤 위치에서 멈추지 않아야합니다. 따라서 데이터 센터로 이동해야하는 대신 echo b> / proc / sysrq-trigger를 실행하십시오. 그러나 일반적으로 나는 :$ 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

echo일반적으로 쉘 내장이므로 쉘 프롬프트가있는 경우 사용할 수 있습니다. /bin/echoPOSIX 규칙에 따라 모든 명령이 경로에 존재해야하지만 성능을 향상시키기 위해 셸 구현으로 대체 될 수 있기 때문에 그렇습니다 . 는 echo매우 매우 기본적인 쉘을 실행하지 않는 것이 너무 자주 사용된다. (비교 help echo대 man echo.)
— 미코 Rantalainen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.