탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11 시스템 Oracle Solaris 11 Information Library (한국어) |
스크립트를 실행하는 일시적 서비스를 정의하는 SMF 매니페스트 파일을 만듭니다.
아래의 예제 서비스 매니페스트 끝 부근에 duration 등록 정보가 transient 값을 가집니다. 일시적 서비스는 start 메소드를 한번 실행하고, $SMF_EXIT_OK로 메소드를 종료하면 다시 실행하지 않습니다. svc.startd 데몬은 스크립트의 첫번째 실행 후에 다시 시작을 시도하지 않습니다.
서비스의 start 메소드가 처음 부트 스크립트를 실행합니다.
이 예에서 서비스의 이름은 site/first-boot-script-svc입니다. 클라이언트를 부트한 후에 다음 명령의 출력에서 서비스를 볼 수 있습니다.
$ svcs -a|grep first-boot-script STATE STIME FMRI disabled 13:51:42 svc:/site/first-boot-script-svc:default
이 예는 multi-user 종속성을 지정하여 처음 부트 후에 시작 시퀀스에서 늦게 스크립트가 실행되도록 합니다. 처음 부트 스크립트가 무엇인지에 따라, 해당 종속성이 필요하지 않을 수 있습니다. 해당 종속성을 지정하지 않으면 예상한 방법으로 시스템을 구성하기 전에 스크립트가 실행될 수 있습니다.
참고 - 스크립트의 종속성을 평가하고 만족스러운 후에 서비스가 스크립트를 실행하도록 구성합니다.
예 13-2 샘플 SMF 서비스 매니페스트
다음 파일은 first-boot-script-svc 서비스에 대한 SMF 매니페스트 파일인 first-boot-script-svc-manifest.xml입니다. 이 서비스는 기본적으로 사용으로 설정되고 다시 시작하지 않습니다. 이 예에서 서비스가 실행하는 스크립트는 /opt/site/first-boot-script.sh입니다.
<?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <service_bundle type='manifest' name='first-boot-script:site-first-boot-script-svc'> <service name='site/first-boot-script-svc' type='service' version='1'> <create_default_instance enabled='true' /> <single_instance /> <!-- Run the script late in the startup sequence after first boot. --> <dependency name='multi-user' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/milestone/multi-user:default' /> </dependency> <exec_method type='method' name='start' exec='/opt/site/first-boot-script.sh' timeout_seconds='360'> <method_context> <method_credential user='root'/> </method_context> </exec_method> <exec_method type='method' name='stop' exec=':true' timeout_seconds='60' /> <property_group name='startd' type='framework'> <propval name='duration' type='astring' value='transient' /> </property_group> </service> </service_bundle>