내 Linux 시스템에 재부팅 구현이 두 개 있는 것처럼 보이는 이유는 무엇입니까?
# find . -name "reboot"
./etc/init.d/reboot
./sbin/reboot
답변1
/sbin/reboot는 실제 바이너리이며 실제로는 데몬을 중지하는 심볼릭 링크입니다.
$ls -la /sbin/reboot
lrwxrwxrwx 1 root root 4 Apr 6 2015 /sbin/reboot -> halt
일시 중지 바이너리는 명령줄에서 일시 중지 또는 다시 시작을 호출할 때 다르게 동작하는 방식으로 코딩됩니다.
/etc/init.d/reboot는 실제로 다음을 통해 종료 시 런레벨 6에서 호출되는 스크립트입니다.
/etc/init.d/rc6.d/K10reboot
보시다시피 :
$ ls -la /etc/rc6.d/K10reboot
lrwxrwxrwx 1 root root 16 Nov 14 18:19 /etc/rc6.d/K10reboot -> ../init.d/reboot
중지 옵션과 함께 호출되면 위에서 언급한 Kxx 심볼릭 링크와 같은 실제 /etc/init.d/reboot는 다음과 같이 재부팅 바이너리를 호출합니다.
reboot -d -f -i
<더 맨 리부트> 중에서
-d Don't write the wtmp record.
-i Shut down all network interfaces just before halt or reboot.
-f Force halt or reboot, don't call shutdown(8).
Kxxx 스크립트 및 런레벨 6에 대한 참고 사항은 Sys V init 스크립트의 일부입니다.
여기 설명을 참조하세요: