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

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

어떤 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

  • 시스템 V- /etc/init.d/xyz start
    RHEL5, 데비안, 수세

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

  • 단일 모드 광섬유svcadm enable svc:/prefix/xyz
    -Solaris, Opensolaris(illumos, smartos 등) 기반

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

  • 방사-운영 launchctl start xyz
    체제

시스템 V/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

관련 정보