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 echoman echo.)
미코 Rantalainen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.