ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 でのサービスと障害の管理 Oracle Solaris 11.1 Information Library (日本語) |
ブート中に system/filesystem/local:default サービスで障害が発生した場合に sulogin プロンプトを強制的に表示する方法
次の手順は、実行制御スクリプトを使用してレガシーサービスを停止または開始する方法を示しています。また、実行制御スクリプトを追加または削除する手順も示しています。
次のタスクマップには、実行制御スクリプトの使用に関する複数の手順が含まれています。各行には、タスク、そのタスクを行う場面の説明、およびタスクへのリンクが含まれます。
|
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# /etc/init.d/filename stop
# /etc/init.d/filename start
# pgrep -f service
例 2-19 実行制御スクリプトを使用してサービスを起動または停止する
たとえば、次のように入力することによって PPPoE サーバーデーモンを停止できます。
# /etc/init.d/pppd stop # pgrep -f nfs
次に、PPPoE サーバーデーモンを再開するには、次のように入力します。
# /etc/init.d/pppd start # pgrep -f ppp 101748 # pgrep -f ppp -d, | xargs ps -fp UID PID PPID C STIME TTY TIME CMD daemon 101748 1 0 Sep 01 ? 0:06 /usr/lib/inet/pppoed
サービスを起動または停止するための実行制御スクリプトを追加するには、そのスクリプトを/etc/init.d ディレクトリにコピーします。次に、サービスを起動または停止する rcn.d ディレクトリ内にリンクを作成します。
実行制御スクリプトの命名法の詳細については、/etc/rcn.d ディレクトリ内の README ファイルを参照してください。次に、実行制御スクリプトを追加する方法について説明します。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# cp filename/etc/init.d # chmod 0744 /etc/init.d/filename # chown root:sys /etc/init.d/filename
# cd /etc/init.d # ln filename /etc/rc2.d/Snnfilename # ln filename /etc/rcn.d/Knnfilename
# ls /etc/init.d/*filename /etc/rc2.d/*filename /etc/rcn.d/*filename
例 2-20 実行制御スクリプトを追加する
次の例は、xyz サービスの実行制御スクリプトを追加する方法を示しています。
# cp xyz /etc/init.d # chmod 0744 /etc/init.d/xyz # chown root:sys /etc/init.d/xyz # cd /etc/init.d # ln xyz /etc/rc2.d/S99xyz # ln xyz /etc/rc0.d/K99xyz # ls /etc/init.d/*xyz /etc/rc2.d/*xyz /etc/rc0.d/*xyz
実行制御スクリプトを無効にするには、ファイル名の先頭に下線 (_) を付けてファイル名を変更します。下線またはドット (.) で始まるファイルは実行されません。接尾辞を追加してファイルをコピーすると、両方のファイルが実行されます。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# cd /etc/rcn.d # mv filename_filename
# ls _* _filename
例 2-21 実行制御スクリプトを無効にする
次の例は、S99datainit スクリプトの名前を変更する方法を示しています。
# cd /etc/rc2.d # mv S99datainit _S99datainit # ls _* _S99datainit
この手順では、既存の実行制御スクリプトをサポートする SMF の利点を使用する方法を示します。詳細は、svcbundle (1M) のマニュアルページを参照してください。
始める前に
最初に、スクリプトが必要とするサービスモデルを確認します。スクリプトが何らかの作業を実行し、長期間実行するプロセスを開始せずに終了するのであれば、ほとんどの場合は一時的なサービスです。スクリプトが長時間実行するデーモンを開始してから終了する場合、それは契約サービスです。サービスモデルについての詳細は、svc.startd(1M) のマニュアルページの期間セクションを参照してください。
次に、サービスに対して適切な実行レベルを確認します。これは、/etc/rc3.d などのスクリプトがリンクされているディレクトリを表示することで確認できます。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
この例で、サービス名は ex_svc です。これは契約サービスで、レベル 3 で実行します。
# svcbundle -o /tmp/ex_svc.xml -s service-name=ex_svc -s start-method=/lib/svc/method/ex_svc -s model=transient
/tmp/ex_svc.xml 内のマニフェストが、必要な内容であることを確認します。
# cp /tmp/ex_svc.xml /lib/svc/manifest/site/ex_svc.xml
# /etc/init.d/ex_svc stop
該当する rc n.d ディレクトリからの実行制御スクリプトへのリンクを削除します。
# svcadm restart svc:/system/manifest-import