시작 시 서비스 시작

시작 시 서비스 시작

내 애플리케이션에 대한 서비스를 만들었고 부팅 시 애플리케이션이 시작되기를 원합니다. 서비스 매니페스트에 속성(enabled="true")이 있다는 것을 알았지만 특히 짜증나는 이 측면은 피했습니다.

가져오기는 스크립트의 일부입니다. 서비스를 "활성화"로 설정하면 가져오기 시 다시 시작됩니다. 문제는 계속하기 전에 프로세스가 활성화될 때까지 기다리는 방법을 잘 모르겠다는 것입니다. 그래서 제가 스크립트에서 수행한 작업은 활성화를 "false"로 설정한 다음 "svcadm 활성화 -s <service>"를 실행하는 것이었습니다.

그래서 다음 질문에 대한 답변을 갖고 있는 분이 있는지 궁금합니다.

  1. 부팅 시 기존 서비스를 시작하려면 어떻게 해야 합니까? (rc3.d에 수동으로 추가하는 것을 방지할 수 있기를 바랍니다.)
  2. 계속하기 전에 서비스가 완전히 활성화될 때까지 svccfg 가져오기를 기다리게 하려면 어떻게 해야 합니까?
  3. 계속하기 전에 서비스가 시작될 때까지 기다리는 우아한 방법이 있습니까(루프에서 수동으로 활성화하는 것을 피함)?

감사해요.

답변1

Solaris SMF에 대한 귀하의 질문에 답변해 드리겠습니다...

  1. 부팅 시 서비스를 시작하려면 서비스를 활성화하기만 하면 됩니다.

    # svcadm enable FRMI
    

    예를 들어 "ipfilter" 서비스를 활성화하려면 다음이 필요합니다.

    # svcadm enable ipfilter
    

    이는 현재 마일스톤에서 활성화되므로 /etc/rcX.d디렉터리를 변경할 필요가 없습니다.

  2. 다른 frmi를 기다리기 위해 가져오기 프로세스가 필요한 이유를 이해할 수 없습니다. 그러나 일반적으로 "매니페스트"를 가져온 다음 온라인에 넣습니다 svcadm.

    # svccfg validate MANIFEST
    # svcadm enable FRMI
    
  3. 다른 frmi를 기다리려면 아래와 같이 매니페스트에서 "종속성" 옵션을 사용할 수 있습니다.

    <dependency
        name='filesystem-local'
        grouping='require_all'
        restart_on='none'
        type='service'>
        <service_fmri value='svc:/system/filesystem/local:default' />
    </dependency>
    

내 블로그(스페인어)에는 Solaris SMF를 설치하고 사용하는 방법에 대한 많은 예가 있습니다. 예를 들어 여기에서 예를 볼 수 있습니다. OpenIndiana에 PostgreSQL 9.0.3을 설치하는 방법또는RBAC 및 SMF를 사용하여 OpenIndiana에 Apache Tomcat을 설치하는 방법

답변2

아직 활성화되지 않은 다른 서비스에 서비스를 종속시켜 이 문제를 해결할 수도 있습니다.

관련 정보