此过程说明如何为服务启动的进程将运行于的环境中的环境变量设置值。
此过程中示例显示如何修改 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,并且该进程环境的两个环境变量都得到了设置。
$ 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 子命令用于取消服务或服务实例启动的进程的环境变量设置。