다양한 배포판의 초기화 시스템 및 서비스 관리

다양한 배포판의 초기화 시스템 및 서비스 관리

어떤 Linux 배포판이 어떤 (기본) 초기화 시스템과 함께 제공되고 서비스 시작/중지를 위해 어떤 도구를 사용하는지에 대한 개요가 있습니까?

서비스를 시작/중지/쿼리하는 배포 독립적인 방법이 있습니까?

  • /etc/init.d/xyz startsystem-v init 시스템에서만 작동합니다.
  • service xyz start모든 배포판에서 사용할 수 있는 것은 아닙니다. (어떤 배포판에 이 기능이 있습니까?)
  • 사용 가능한 명령에 따라 케이스를 전환하는 것이 유일하게 신뢰할 수 있는 방법인 것 같습니다.

배경: 서비스를 다시 시작/쿼리해야 하는 다양한 Linux 배포판용 설치 프로그램을 작성해야 합니다. 도구 를 호출하는 service것이 좋을 것 같지만 어떤 배포판이 이를 지원하는지 잘 모르겠습니다.

답변1

이 서비스를 설치하려는 경우 지원하려는 플랫폼에 대해 초기화 스크립트/구성을 올바르게 작성해야 하므로 각 배포 서비스 관리를 알아야 할 것입니다.

  • 체계화된- systemctl start xyz.service
    Fedora 15+, RHEL7, Arch, Debian 8+, Ubuntu 15+, openSUSE 12.3+

  • 갑자기 나타나다- service xyz start
    우분투, 페도라 9+, RHEL6

  • SysV- /etc/init.d/xyz start
    RHEL5, 데비안, 수세

  • 오픈RC- /etc/init.d/xyz start
    젠투, 알파인(Net/FreeBSD 지원)

  • SMF- svcadm enable svc:/prefix/xyz
    Solaris, Opensolaris 기반(illumos, smartos 등)

  • rc /etc/rc.d/xyz start
    -BSD

  • 출시됨- launchctl start xyz
    OSX

SysV/etc/rc.d/xyz대부분의 새로운 init 시스템이 계속해서 스크립트를 지원하는 Linux 표준( )이므로 이것이 기본 포인트입니다.

체계화된리눅스가 향하고 있는 곳은 바로 여기다

많은 플랫폼에서 실행될 수 있는 유틸리티는 모르지만 대부분의 구성 관리 소프트웨어는 크로스 플랫폼 서비스 관리를 수행할 수 있습니다. 불행하게도 이는 구성 관리 소프트웨어도 설치해야 함을 의미합니다(또는 최소한 기본 모듈과 런타임 Ruby/Python). 구성 도구에서 설치하는 모든 작업을 수행할 수 있으므로 자신의 컴퓨터에서 설치를 관리하는 경우에는 괜찮습니다. 소프트웨어를 누구에게나 배포하려는 경우에는 좋지 않습니다.

다음 구성 관리 예제는 로컬 기본 서비스 관리자와 상호 작용하고 xyz아직 실행 중이 아닌 경우 시작됩니다. 더 이상 아무것도 알 필요가 없습니다.

요리사 레시피관리할 수 있다service자원

service "xyz" do
  action :start
end

인형service

service { "xyz":
  ensure => "running",
}

앤서블 service모듈

- service: name=xyz state=started

관련 정보