一般的な手順を実行する必要があります:
または を起動してサービスを停止するためのプロセスを特定します。
または このサービスのため、このサービスの名前を確立カテゴリに該当する。
または サービスの複数のインスタンスを実行するかどうかを調べる。
または このサービスは、他のサービス間の依存関係を特定します。
または もしスクリプトを起動し、停止するプロセスは、スクリプトを作成し、ローカルディレクトリに配置などを/ usr / local / svc /メソッドが必要です
または お客様のサービスのためのマニフェストファイルには、サービスを作成します。このファイルには、サービスとの依存関係について説明します。サービスマニフェストには、リポジトリのいずれか、または起動時にsvccfgコマンドを使用して引っ張っている。
または SMFのにsvccfgユーティリティを使用して、スクリプトを組み込む。
以下に例が表示されます。
コード:
# vi /usr/local/svc/method/newservice
#!/sbin/sh
#
# Copyright (c) 1995, 1997-1999 by Sun Microsystems, Inc.
# All rights reserved.
#
#ident "@(#)newservice 1.14 06/11/17 SMI"
case "$1" in
'start')
/usr/bin/newservice &
;;
'stop')
/usr/bin/pkill -x -u 0 newservice
;;
*0
echo "Usage: $0 { start | stop }"
;;
esac
exit 0
# chmod 544 /usr/local/svc/method/newservice
# cd /var/svc/manifest/site
# vi newservice.xml
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
Copyright 2004 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
pragma ident "@(#)newservice.xml 1.2 04/08/09 SMI"
-->
<service_bundle type='manifest' name='OPTnew:newservice'>
<service
name='site/newservice'
type='service'
version='1'>
<single_instance/>
<dependency
name='usr'
type='service'
grouping='require_all'
restart_on='none'>
<service_fmri value='svc:/system/filesystem/local'/>
</dependency>
<dependency
name='newservice'
grouping='require_all'
restart_on='none'>
<service_fmri value='svc:/milestone/multi-user'/>
</dependency>
<exec_method
type='method'
name='start'
exec='/lib/svc/method/newservice start'
timeout_seconds='30' />
<exec_method
type='method'
name='stop'
exec='/lib/svc/method/newservice stop'
timeout_seconds='30' />
<property_group name='startd' type='framework'>
<propval name='duration' type='astring' value='transient' />
</property_group>
<instance name='default' enabled='true' />
<stability value='Unstable' />
<template>
<common_name>
<loctext xml:lang='C'>
New Service
</loctext>
</common_name>
</template>
</service>
</service_bundle>
以下は、ファイル内のエントリについて説明:
または 標準ヘッダ。
コード:
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM
"/usr/share/lib/xml/dtd/service_bundle.dtd.1">
または コメントセクション。
コード:
<!--
Copyright 2004 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
pragma ident "@(#)newservice.xml 1.2 04/08/09 SMI"
-->
または このサービスの名前。の種類( )マニフェストは画期的な出来事ではなく、シンプルなサービスを示して、パッケージには、サービスを提供し、サービス名を入力します。
コード:
<service_bundle type='manifest' name='OPTnew:newservice'>
または サービスのカテゴリー、タイプ、名前とバージョン。
コード:
<service
name='site/newservice'
type='service'
version='1'
または このサービスの複数のインスタンスを実行するかどうか。
または このサービスモデルを使用してください。このエントリは、 svc.startdは、サービスが開始されますが表示されます。一過性のサービスを再起動していない1回起動されます。
コード:
<property_group name='startd' type='framework'>
<propval name='duration' type='astring' value='transient' />
</property_group>
または どのようにサービスが開始され、停止した。
コード:
<exec_method
type='method'
name='start'
exec='/lib/svc/method/newservice start'
timeout_seconds='30' />
<exec_method
type='method'
name='stop'
exec='/lib/svc/method/newservice stop'
timeout_seconds='30' />
または このサービスは任意の依存関係を定義します。最初のエントリには、ファイルシステムnewservice /ローカルサービスを必要とします。
コード:
<dependency
name='usr'
type='service'
grouping='require_all'
restart_on='none'>
<service_fmri value='svc:/system/filesystem/local'/>
</dependency>
または 2番目のエントリは、画期的なサービスは、マルチユーザーに関連付けられているようにマイルストーンは、マルチユーザーはこのサービスを必要とします。
コード:
<dependency
name='newservice'
grouping='require_all'
restart_on='none'>
<service_fmri value='svc:/milestone/multi-user'/>
</dependency>
または インスタンスを作成する。
コード:
<instance name='default' enabled='true' />
<stability value='Unstable' />
または 情報を作成するサービスを的確に表現してください。
コード:
<template>
<common_name>
<loctext xml:lang='C'>
New Service
</loctext>
</common_name>
</template>
する必要がある新しいサービス( newservice ) SMFのにインポートされる。
これは、 svccfgユーティリティを実行することによって行われます:
コード:
# svccfg import /var/svc/manifest/site/newservice.xml
このサービスの後は、 svcsコマンドを使用して表示されるようにSMFのにインポートされています。
コード:
# svcs newservice
STATE STIME FMRI
online 8:57:35 svc:/site/newservice:default
#
また、 svcadmを使用して、サービスを操作することが可能である。
コード:
# svcadm -v disable site/newservice
site/newservice disabled.
# svcs newservice
STATE STIME FMRI
disabled 9:07:15 svc:/site/newservice:default
# svcadm -v enable site/newservice
site/newservice enabled.
# svcs newservice
STATE STIME FMRI
online 9:17:01 svc:/site/newservice:default
#
最後に、マルチユーザー環境では、節目のnewserviceための要件を完了するために必要と観察することができます。
コード:
# svcs -d milestone/multi-user:default
STATE STIME FMRI
disabled 8:43:16 svc:/platform/sun4u/sf880drd:default
online 8:43:16 svc:/milestone/name-services:default
online 8:43:33 svc:/system/rmtmpfiles:default
online 8:43:42 svc:/network/rpc/bind:default
online 8:43:46 svc:/milestone/single-user:default
online 8:43:46 svc:/system/utmp:default
online 8:43:47 svc:/system/system-log:default
online 8:43:49 svc:/system/filesystem/local:default
online 8:44:01 svc:/system/mdmonitor:default
online 9:17:01 svc:/site/newservice:default
#