재시작을 구현하는 두 가지 방법은 무엇입니까?

재시작을 구현하는 두 가지 방법은 무엇입니까?

내 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 스크립트의 일부입니다.

여기 설명을 참조하세요:

http://www.linuxvoodoo.com/resources/howtos/sysvinit

관련 정보