"reboot" 명령 대신 "telinit 6"을 사용하여 컴퓨터를 재부팅하면 어떤 차이가 있습니까? [복사]

"reboot" 명령 대신 "telinit 6"을 사용하여 컴퓨터를 재부팅하면 어떤 차이가 있습니까? [복사]

유닉스의 런레벨을 이해하려고 하다가 런레벨 6이 재부팅 상태라는 것을 알게 되었습니다. 그래서 해당 명령을 사용하여 런레벨 6으로 전환을 시도했는데 telinit 6내 컴퓨터에서와 동일하게 작동합니다. rebootKali Linux를 사용하고 있으므로 sudo가 필요하지 않습니다.

룬 레벨 변경/전환은 단지 일부 프로세스를 호출하는 명령입니까? 부팅하거나 재부팅하거나 전원을 끌 때 런레벨만 변경합니까?

답변1

init기반 운영 체제 에 /sbin/telinit연결 /sbin/init, systemed기반 운영 체제에 연결합니다. 따라서 이것은 /sbin/systemed유사한 소프트웨어와 통신하는 방법입니다.initsystemed

telinit 6과 의 결과 reboot는 동일하지만 구현하는 아이디어는 다릅니다.

에서 인용http://www.tutorialspoint.com/unix_commands/init.htm

실행 수준은 선택된 프로세스 집합만 존재하도록 허용하는 시스템의 소프트웨어 구성입니다.

따라서 변화는 또는 와 runlevel같지 않습니다 .rebootingpower off

init시스템 기반 운영 체제 에서는 시작할 프로세스 그룹을 결정하기 위해 시스템을 시작할 때 이 파일을 runlevel영구적으로 읽습니다. 런레벨 6은 프로세스를 시작하지 않고 다시 시작함을 의미합니다./etc/inittabinit

변경 사항 /etc/inittab은 영구적입니다. 파일이 수정되면 init재부팅 시 런레벨이 변경되고 파일이 추가로 수정될 때까지 지속됩니다.

효과 telinit는 일회성이며 다시 시작할 필요가 없습니다. 다시 시작한 후 init다시 읽고 /etc/inittab이에 따라 런레벨을 시작하십시오.

Runlevel 6은 이제 init모든 하위 프로세스를 종료하고 다시 시작하는 것을 의미합니다. telinit 6 init모든 하위 프로세스를 종료 하고 다시 시작합니다. init는 명령을 내릴 reboot때 동일한 작업을 수행합니다 . 그러나 이는 런레벨 변경이 재부팅과 동일하다는 의미는 아닙니다. 시스템의 런레벨을 6으로 영구적으로 변경하면 /etc/inittab계속 재부팅되기 때문입니다.

telinit 6명령 대신 시스템 재시작을 사용해도 reboot아무런 차이가 없습니다 .

답변2

Linux에는 UNIX System V init 시스템을 모델로 한 SysVinit이라는 초기화 시스템이 있습니다. Linux의 일부 버전은 실제로 여전히 이 시스템을 사용하고 Systemd의 SysVcompat과 같이 호환성을 유지하거나 부분적으로 대체하거나(sysvcompat는 없지만 여전히 Debian과 같은 sysv 스크립트를 사용함) "순수한" Systemd 시스템과 같이 완전히 대체합니다. .

SysV는 기본적으로 실행 수준 개념을 구현합니다. 스크립트는 /etc/rc{runlevel}.d/에 위치하며, 여기서 runlevel은 런레벨입니다. SysV는 또한 기본적으로 사용할 항목을 포함하여 실행 수준에 대한 기본 정렬 동작을 정의합니다. 각 런레벨의 모든 스크립트는 런레벨이 올라가는지 내려가는지에 따라 시작 또는 종료 기능을 사용하여 실행됩니다. 따라서 sysvinit 시스템에서는 예, 처음 실행되는 /sbin/init를 시작하면 프로그램은 모든 런레벨에 있는 모든 스크립트의 시작 기능을 실행합니다. 또한 /etc/rc*에 링크된 것보다 더 많은 스크립트를 설치할 수 있다는 점을 지적하고 싶습니다. 이는 스크립트와 스크립트가 제어하는 ​​서비스를 활성화 및 비활성화하는 방법입니다.

sysv를 사용하지 않는 시스템은 systemd처럼 이 작업을 전혀 수행할 필요가 없습니다. 간단히 말해서 systemd에는 다른 서비스, 마운트 지점, 타이머 또는 "network.target"과 같은 대상과 같은 종속성을 정의하는 단위가 있습니다. systemd가 sysv 스크립트와 완전한 호환성을 유지하지만 반드시 런레벨일 필요는 없다는 점을 제외하고는 systemd에 대해 자세히 설명하지 않겠습니다. 또한 init를 먼저 실행하거나 systemd를 실행한 후 모든 sysv 스크립트를 실행할 수 있습니다. 또는 배포판이 모든 sysv 스크립트를 시스템 단위로 대체했을 수도 있습니다. 대부분의 배포판은 systemd와 유사하게 reboot또는 systemd를 통해 실행하기 위해 호환성 스크립트를 설치합니다 telinit.

관련 정보