Menu Close

12.3. 호환성 변경

systemd 시스템 및 서비스 관리자는 SysV init 및 Upstart와 대부분 호환되도록 설계되었습니다. 다음은 SysV init을 사용하는 Red Hat Enterprise Linux 6 시스템과 관련하여 주요 호환성 변경 사항입니다.

  • systemd 에는 런레벨에 대한 지원만 제한됩니다. 이러한 런레벨에 직접 매핑할 수 있고 호환성을 이유로 이전 런레벨 명령과 함께 배포될 수 있는 여러 대상 유닛을 제공합니다. 모든 systemd 대상을 런레벨에 직접 매핑할 수 있는 것은 아니며 결과적으로 이 명령은 알 수 없는 런레벨을 나타내기 위해 N 을 반환할 수 있습니다. 가능한 경우 런레벨 명령을 사용하지 않는 것이 좋습니다.
    systemd 대상 및 실행 수준 비교에 대한 자세한 내용은 systemd 대상 작업을 참조하십시오.
  • systemctl 유틸리티는 사용자 지정 명령을 지원하지 않습니다. start,stopstatus 와 같은 표준 명령 외에도 SysV init 스크립트 작성자는 추가 기능을 제공하기 위해 다수의 임의 명령에 대한 지원을 구현할 수 있었습니다. 예를 들어, panic 명령을 사용하여 iptables 의 init 스크립트를 실행할 수 있습니다. 이 명령은 패닉 모드를 활성화하고 들어오고 나가는 모든 패킷을 삭제하도록 시스템을 재구성했습니다. 이는 systemd 에서 지원되지 않으며 systemctl 은 문서화된 명령만 허용합니다.
  • systemctl 유틸리티는 systemd 에서 시작하지 않은 서비스와 통신하지 않습니다. systemd 는 시스템 서비스를 시작하면 기본 프로세스의 ID를 계속 추적하기 위해 저장합니다. systemctl 유틸리티는 이 PID를 사용하여 서비스를 쿼리하고 관리합니다. 따라서 사용자가 명령줄에서 직접 특정 데몬을 시작하는 경우 systemctl 은 현재 상태를 확인하거나 중지할 수 없습니다.
  • systemd 는 실행 중인 서비스만 중지합니다. 이전 버전에서는 종료 시퀀스가 시작될 때 Red Hat Enterprise Linux 6 및 시스템의 이전 릴리스에서는 /etc/rc0.d/ 디렉터리에 있는 심볼릭 링크를 사용하여 상태와 관계없이 사용 가능한 모든 시스템 서비스를 중지했습니다. systemd 를 사용하면 종료 시 실행 중인 서비스만 중지됩니다.
  • 시스템 서비스는 표준 입력 스트림에서 읽을 수 없습니다. systemd 는 서비스를 시작하면 표준 입력을 /dev/null 에 연결하여 사용자와의 상호 작용을 방지합니다.
  • 시스템 서비스는 호출된 사용자 및 해당 세션에서 어떠한 컨텍스트(예: HOMEPATH 환경 변수)를 상속하지 않습니다. 각 서비스는 명확한 실행 컨텍스트에서 실행됩니다.
  • SysV init 스크립트를 로드할 때 systemd 는 Linux Standard Base(LSB) 헤더로 인코딩된 종속성 정보를 읽고 런타임에 해석합니다.
  • 서비스 유닛에 대한 모든 작업에는 기본 시간 초과가 5분으로 되어 시스템이 중단되는 것을 방지할 수 있습니다. 이 값은 initscripts에서 생성된 서비스에 하드 코딩되며 변경할 수 없습니다. 그러나 개별 구성 파일을 사용하여 서비스당 시간 초과 값을 지정할 수 있습니다. 시간 제한 제한 변경을 참조하십시오.