この手順では、サービスが開始したプロセスが実行している環境で環境変数の値を設定する方法を示します。
この手順の例では、デバッグに役立つように cron 環境変数を変更する方法を示します。
次の出力には、cron サービスがオンラインになっており、cron プロセスが実行していることが示されています。
$ svcs -p cron
STATE STIME FMRI
online 10:24:05 svc:/system/cron:default
10:24:05 1089 cron
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
環境変数の値の変更が有効になるには、再起動とリフレッシュが必要です。
$ svcadm refresh system/cron:default $ svcadm restart system/cron:default
次の出力には、サービスが再起動し、プロセスに新しいプロセス 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 サブコマンドは、サービスまたはサービスインスタンスによって開始されたプロセスの環境変数を設定解除します。