설정하려고 하는데사인Linux 로 init
(PC에서..). 이제 내 목표는 tty/bash
그것 중 하나를 실행하는 것입니다. 커널이 root=/dev/sda2
이미 cmdline
.
sinit
바이너리 파일이 있는데 /sbin/init
다음에 무엇을 해야 할지 모르겠습니다. 일부 스크립트를 제자리에 배치해야 한다는 것을 알고 있지만 sinit
스크립트를 어떻게 실행하거나 bash
.
답변1
포함된 sinit.8 매뉴얼 페이지와 readme 파일은 저에게 매우 도움이 됩니다. 하지만 소스 코드를 보면 간략한 개요를 알려 드리겠습니다.
/sbin/init
pid 1로 커널에 의해 시작되는 sinit 기본 실행 파일/bin/rc.init
스크립트를 별도의 하위 프로세스로 실행하기 위한 초기 환경을 준비합니다./bin/rc.init
별도의 프로세스로 실행되므로 해당/bin/rc.init
시점 이후에 시스템을 초기화하는 명령이 포함되어 있습니다.- 무한 루프에 빠져 좀비 프로세스를 포착하고 종료 코드를 아무데도 읽지 않습니다.
- 무한 루프에 있을 때 신호에 의해 중단될 수 있습니다. 수신할 신호가 SIGUSR1 및 SIGINT임을 정의합니다. SIGUSR1은 init가
/bin/rc.shutdown
스크립트 이름으로 실행되도록 강제하는poweroff
반면, SIGINT는 init가reboot
이름으로 동일한 스크립트를 실행하도록 강제하여 스크립트 내의 작동 모드를 구별합니다. 이 두 신호는 init가 듣는 신호일 뿐입니다.포함하다SIGKILL 및 SIGSTOP을 무시합니다. 그리고 슈퍼유저만이 init에 신호를 보낼 수 있습니다. SIGINT는 Ctrl-Alt-Delete를 누를 때 커널에 의해 생성되지만 그렇게 표시된 경우에만 생성됩니다(init 프로세스는 일반적으로 CAD에서 SIGINT 전송을 활성화하기 위해 특수 시스템 호출을 수행합니다).
그래서, 게다가, sinit사용 불가:
- 초기화 스크립트(직접 작성하거나 배포판에서 제공한 스크립트를 조정해야 함)
- 제어 모드(예: 실행 수준), 두 개의 간단한 명령만 있음
그러나 sinit은 훌륭하고 귀여운 작은 init입니다. 현대 데스크탑 환경의 번거로움 없이 단순한 데스크탑 시스템뿐만 아니라 임베디드 시스템에서도 훌륭하게 작동할 것이라고 확신합니다.