Solaris SMF 및 Linux Upstart [종료]

Solaris SMF 및 Linux Upstart [종료]

SMF를 처음 배운 후 Upstart를 배우고 있습니다.

물론 나는 그들이 같은 목적을 달성한다고 가정하고 있지만 그것이 내가 틀렸다는 것을 알고 있습니다.

이상적으로는 Upstart에 존재하지 않는 기능을 파헤칠 필요가 없도록 누군가가 비교를 작성해 주기를 바랍니다. Solaris에는 커널에 내장된 계약 하위 시스템이라는 것이 있는데, 이는 실제로 SMF의 대부분의 기능이 구현되는 방식입니다. 아마도 Linux에는 비슷한 것이 없을 것이라는 것을 알고 있습니다. 따라서 서비스 중지, 서비스 모니터링 및 실패 시 다시 시작 측면에서 Upstart가 무엇을 기대하는지 파악할 수 없습니다.

좀 더 구체적으로 말하면 Upstart에서 실제로 파악할 수 없는 사항은 다음과 같습니다.

  1. 멈추다. SMF를 사용하면 SMF가 중지 프로세스를 수행하도록 하는 데 매우 익숙합니다. 나는 특정 종료 스크립트를 실제로 작성한 적이 없으며 PID를 추적할 필요도 없고 프로세스가 생성된 횟수 등을 알 필요도 없습니다. 이는 Upstart의 DIY 프로세스와 비슷해 보입니다. 옳은?

  2. 오류 재시작. 이것이 Upstart의 기능인지 정말 이해가 되지 않습니다. 저는 Linux 사람들이 Upstart를 일종의 사용자 영역 프로세스 모니터링 메커니즘과 결합하는 것을 보았습니다. 어쩌면 이것이 내가해야 할 일일까요?

  3. 보다. 나는 svcs -p <servicename>(현재) 서비스의 모든 프로세스를 볼 수 있는 SMF 명령을 좋아합니다 . Upstart에서는 "service" = "process"라고 생각합니다. 이는 Upstart에서 명령이 initctl status <jobname>항상 단일 프로세스만 표시한다는 의미입니다. 내 서비스가 운영 체제 관점에서 볼 때 두 개의 별도 프로세스인 경우 어떻게 되나요?

  4. 인스턴스가 하나만 보장됨. 대부분의 데몬과 마찬가지로 인스턴스가 하나만 시작되도록 해야 합니다. 일부 서비스의 경우 두 번째 인스턴스를 시작하려고 시도하는 것조차 치명적일 수 있습니다. 나는 Upstart에게 이에 대해 알리고 Upstart에게 이에 대해 확신을 주고 싶습니다. 따라서 연산자가 실행 service xyz start되고 xyz이미 실행 중이더라도 다른 인스턴스가 시작을 시도하거나 xyz다시 시작이 시도되어서는 안 됩니다 xyz. 내가 이걸 할 수 있을까?

  5. 대표단. SMF를 사용하면 특정 서비스에 대한 책임을 권한이 없는 사용자에게 위임합니다. 예를 들어, 자신의 포트 80 웹 서버를 시작/중지할 수 있는 권한이 부여된 권한이 없는 사용자로 구성된 소규모 그룹이 있습니다. 이 서비스에 권한 있는 포트(포트 번호 < 1024)에 바인딩하는 기능을 할당하여 이 작업을 수행했습니다. 아니요서비스에 루트와 유사한 추가 권한을 할당합니다. 그런 다음 역할을 통해 서비스에 대한 시작/중지 권한을 사용자 그룹에 위임합니다. Upstart에서 동일한 결과를 얻으려면 일부 sudo 스크립트를 실행해야 한다고 가정합니다.

cron좀 더 자세히 살펴보면 Upstart는 SMF에 없는 단기 작업이나 반복 작업 개념을 갖고 있는 것 같습니다 . SMF는 이름에서 알 수 있듯이 순전히 다음에 초점을 맞춥니다.제공하다즉, 장기 실행 프로세스입니다. 이것이 아마도 나를 혼란스럽게 만드는 것 같습니다. 하지만 지금은 이러한 장기 실행 프로세스를 구성하는 방법에만 집중하고 있습니다. 나는 내 서비스를 OS에 설명하고(예: 전제 조건, 시작, 중지, 위임, 권한 부여 방법 등) OS가 거기에서 서비스를 처리하도록 하는 방법을 찾고 있습니다.

업데이트 1: 자세히 알아보기: 이는 Linux에서는 확실히 균일하지 않습니다. 즉, Linux 커뮤니티에서는 이 문제에 대한 합의가 없습니다... 가볍게 말하면. 이는 CentOS 및 때로는 약간의 RedHat(둘 다 버전 6 시리즈) 배포판에 대해 알려주어야 함을 의미합니다.

업데이트 2: RedHat(및 CentOS도 포함)이 Upstart라는 새 버전을 선호하여 다음 주요 릴리스에서 Upstart를 삭제할 것이라는 사실을 알게 되었거나 적어도 일부 사람들은 말합니다 systemd. 이것이 나를 더욱 혼란스럽게 합니다. 지금 CentOS/RH에서 안정적인 서비스를 구축하고 싶다면 어떻게 해야 합니까?

관련 정보