Solaris のシステム管理 (基本編)

実行制御スクリプトの使用

Procedure実行制御スクリプトを使用して従来のサービスを起動または停止する方法

実行レベルごとに対応するスクリプトを持つことの利点は、/etc/init.d ディレクトリ内の個々のスクリプトを実行することによって、システムの実行レベルを変更しないで (現在の実行レベルの) システムサービスを停止できる点です。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. システムサービスを停止します。


    # /etc/init.d/filename 
    stop
    
  3. システムサービスを再開します。


    # /etc/init.d/filename 
    start
    
  4. サービスが停止または起動されたことを確認します。


    # pgrep -f service
    

例 19–15 実行制御スクリプトを使用してサービスを起動または停止する

NFS サーバーデーモンを停止するには、次のように入力します。


# /etc/init.d/nfs.server stop
# pgrep -f nfs

そして、NFS サーバーデーモンを再開するには、次のように入力します。


# /etc/init.d/nfs.server start
# pgrep -f nfs
101773
101750
102053
101748
101793
102114
# pgrep -f nfs -d, | xargs ps -fp
     UID    PID   PPID   C    STIME TTY         TIME CMD
  daemon 101748      1   0   Sep 01 ?           0:06 /usr/lib/nfs/nfsmapid
  daemon 101750      1   0   Sep 01 ?          26:27 /usr/lib/nfs/lockd
  daemon 101773      1   0   Sep 01 ?           5:27 /usr/lib/nfs/statd
    root 101793      1   0   Sep 01 ?          19:42 /usr/lib/nfs/mountd
  daemon 102053      1   0   Sep 01 ?        2270:37 /usr/lib/nfs/nfsd
  daemon 102114      1   0   Sep 01 ?           0:35 /usr/lib/nfs/nfs4cbd

Procedure実行制御スクリプトを追加する方法

サービスを起動または停止するための実行制御スクリプトを追加するには、そのスクリプトを/etc/init.d ディレクトリにコピーします。次に、サービスを起動または停止する rcn.d ディレクトリ内にリンクを作成します。

実行制御スクリプトの命名法の詳細については、/etc/rcn.d ディレクトリ内の README ファイルを参照してください。次に、実行制御スクリプトを追加する方法について説明します。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. スクリプトを /etc/init.d ディレクトリに追加します。


    # cp filename/etc/init.d
    # chmod 0744 /etc/init.d/filename
    # chown root:sys /etc/init.d/filename
    
  3. 適切な rcn.d ディレクトリへのリンクを作成します。


    # cd /etc/init.d
    # ln filename /etc/rc2.d/Snnfilename
    # ln filename /etc/rcn.d/Knnfilename
    
  4. スクリプトのリンクが指定のディレクトリ内にあることを確認します。


    # ls /etc/init.d/*filename /etc/rc2.d/*filename /etc/rcn.d/*filename
    

例 19–16 実行制御スクリプトを追加する

次の例は、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

Procedure実行制御スクリプトを無効にする方法

実行制御スクリプトを無効にするには、ファイル名の先頭に下線 (_) を付けてファイル名を変更します。下線またはドット (.) で始まるファイルは実行されません。接尾辞を追加してファイルをコピーすると、両方のファイルが実行されます。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 新しいファイルの先頭に下線 (_) を付けて、スクリプト名を変更します。


    # cd /etc/rcn.d
    # mv filename_filename
    
  3. スクリプトの名前が変更されたことを確認します。


    # ls _*
    _filename
    

例 19–17 実行制御スクリプトを無効にする

次の例は、S99datainit スクリプトの名前を変更する方法を示しています。


# cd /etc/rc2.d
# mv S99datainit _S99datainit
# ls _*
_S99datainit