Linux - 초기화가 포함된 IPC

Linux - 초기화가 포함된 IPC

init 프로세스는 Linux 시스템의 모든 프로세스의 조상으로 존재합니다. 이 프로세스에는 어떤 종류의 IPC 진입점이 있습니까? 어떤 이유로 다른 프로세스가 init로 IPCing되고 있습니까?

답변1

프로세스와 절차를 혼동하지 마십시오. 하나의 프로세스 #1이 있지만 여러 다른 프로그램 중 하나를 실행할 수 있습니다.

  • systemdsystemd 패키지의 프로그램을 실행 중인 경우 :
  • 실행 중이라면system-manager프로그램스낵백:
    • systemd해당되는 경우 동일한 의미를 갖는 식별된 신호의 상당한 하위 집합에 응답합니다 .
  • init시작부터 프로그램을 실행하는 경우 :
    • 내부 upstart API가 있습니다., D-Bus를 통해 액세스할 수 있습니다.
    • FIFO에서 명령 메시지를 읽습니다 initctl.
    • 그것은 작은 신호 세트에 반응합니다.
  • Joachim Nilsson을 실행 중인 경우 finit:
  • System 5를 실행 중인 경우 다음을 수행 init하십시오.
    • FIFO에서 명령 메시지를 읽습니다 initctl.
    • 아주 작은 신호 세트에 반응합니다.

몇 가지 참고사항:

  • 신호 API는 신호를 프로세스 #1로 보내는 것에 의해 시행됩니다. 여기에는 SIGWINCH, SIGINT, 및 와 같은 항목을 보내는 운영 체제 커널 SIGPWR과 널리 사용되는 다양한 시스템 유틸리티가 포함됩니다.
    • systemd둘 다 시스템 끄기 및 전원 끄기와 같은 시스템 상태 변경을 명령하는 신호를 사용하여 이 기능을 확장합니다 .system-manager
    • 모든 프로그램이 시스템별 신호 전체를 지원하는 것은 아닙니다. SIGPWR예를 들어, 신생 기업에서는 응답을 언급하지 않았습니다.
    • finitSIGSTOP및 를 포함하는 다양한 비체계적 강제 확장 신호 세트를 식별합니다 SIGCONT.
  • initctlsystemd 패키지는 프로세스 #1로 실행되는 프로그램에서 FIFO API를 구현하지 않지만 다음을 제공합니다.호환성 스페이서존재하다다른프로세스에서는 메커니즘을 기본 시스템 메커니즘으로 변환하는 다른 프로그램을 실행합니다. (nosh 도구 세트에는 자체initctl-read호환성 심은 nosh 도구 세트 시스템 관리를 위한 기본 메커니즘으로 유사하게 변환됩니다. )
    • initctl실제로 init다른 시스템(만약 그렇다면)은 제한된 하위 호환성 메커니즘으로 실행 수준 개념을 구현하기 때문에 System V 외에는 기본 시스템이 아닙니다.
    • 해당 프로그램의 시작 매뉴얼 페이지에 init나와 있듯이 initctl메커니즘은 잘 문서화되어 있지 않습니다. 심지어 System V 사람들도 System V 패키지에 있는 것만 사용해야 한다고 init사람들에게 말하고 있습니다 . init게다가 Debian System V 관리자는 /dev이를 /run.

그렇습니다. 프로그램은 프로세스 #1을 사용하여 IPC를 수행합니다. 그렇게 하는 이유는 다양합니다.

  • systemd프로그램은 System Manager, Service Manager, Control Group Manager의 조합이므로 프로그램은 IPC를 사용하여 #1을 다양한 용도로 처리합니다. 누보 부자의 경우에도 마찬가지입니다 init.
  • 전채 요리의 경우 system-manager대신제공하다service-manager관리는 자체(daemontools 호환) API를 사용하여 다른 프로그램(프로세스의 다른 프로그램( ) 에 의해 수행됩니다 . 따라서 IPC에 프로세스 #1을 사용하는 유일한 이유는 다음과 같습니다.시스템 상태(예를 들어) 머신 재부팅과 같은 관리.

전부는 아니지만 많은 목적을 위해 프로그램이 프로세스 # system-manager1 보다 다른 API를 사용하고 기존 시스템 유틸리티를 사용하여 시스템 종료 및 다시 시작과 같은 작업을 수행하는 것이 좋습니다 .systemd

추가 읽기

관련 정보