Oracle® Solaris 11.2 でのシステムサービスの管理

印刷ビューの終了

更新: 2014 年 7 月
 
 

サービスプロセス環境の環境変数を変更する方法

この手順では、サービスが開始したプロセスが実行している環境で環境変数の値を設定する方法を示します。

この手順の例では、デバッグに役立つように cron 環境変数を変更する方法を示します。

  1. サービスが実行されていることを確認します。

    次の出力には、cron サービスがオンラインになっており、cron プロセスが実行していることが示されています。

    $ svcs -p cron
    STATE          STIME    FMRI
    online         10:24:05 svc:/system/cron:default
                   10:24:05     1089 cron
  2. 環境変数を設定します。

    setenv サブコマンドは、サービスまたはサービスインスタンスによって開始されたプロセスが実行している環境の環境変数を設定します。

    次のコマンドを使用して、設定する環境変数の現在の値を確認します。

    $ pargs -e `pgrep -f /usr/sbin/cron`

    この例で設定される環境変数には、現在値が割り当てられていません。

    次のコマンドは、svc:/system/cron:default サービスインスタンスによって開始された /usr/sbin/cron プロセスの UMEM_DEBUG および LD_PRELOAD 環境変数を設定します。

    $ svccfg -s system/cron:default setenv UMEM_DEBUG default
    $ svccfg -s system/cron:default setenv LD_PRELOAD libumem.so
  3. サービスのリフレッシュと再起動を行います。

    環境変数の値の変更が有効になるには、再起動とリフレッシュが必要です。

    $ svcadm refresh system/cron:default
    $ svcadm restart system/cron:default
  4. 正しく変更されたことを確認します。

    次の出力には、サービスが再起動し、プロセスに新しいプロセス ID が与えられ、そのプロセス環境に対して 2 つの環境変数が設定されていることが示されています。

    $ svcs -p cron
    STATE          STIME    FMRI
    online          9:24:39 svc:/system/cron:default
                    9:24:39     5601 cron
    $ svcprop -g method -p environment system/cron:default
    start/environment astring LD_PRELOAD=libumem.so UMEM_DEBUG=default
    $ pargs -e `pgrep -f /usr/sbin/cron`
    5601: /usr/sbin/cron
    envp[0]: LOGNAME=root
    envp[1]: LD_PRELOAD=libumem.so
    envp[2]: PATH=/usr/sbin:/usr/bin
    envp[3]: SMF_FMRI=svc:/system/cron:default
    envp[4]: SMF_METHOD=start
    envp[5]: SMF_RESTARTER=svc:/system/svc/restarter:default
    envp[6]: SMF_ZONENAME=global
    envp[7]: UMEM_DEBUG=default

関連項目

unsetenv サブコマンドは、サービスまたはサービスインスタンスによって開始されたプロセスの環境変数を設定解除します。