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_DEBUGLD_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가 포함되고 해당 프로세스 환경에 대한 두 개 환경 변수가 설정되었음을 보여줍니다.

    $ 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 하위 명령은 서비스나 서비스 인스턴스에서 시작한 프로세스에 대한 환경 변수를 설정 해제합니다.