2011-12-21 3 views
5

환경 변수를 내보내고 일부 첨자를 시작하는 스크립트가 있습니다.실행중인 프로세스의 환경 변수를 변경하는 중

export LOGLEVEL="1" 
/home/myuser/bin/myscript1.sh 
/home/myuser/bin/myscript2.sh 

LOGLEVEL는 첨자에서 프로세스 startet 사용할 수 있습니다. 환경 변수 LOGLEVEL을 어떻게 바꿀 수 있습니까?

나는 변수를 export LOGLEVEL="5"으로 설정하려고 시도했지만 작동하지 않습니다.

+0

가능한 중복 ([? 다른 프로세스의 환경 변수를 변경하는 방법이] http://stackoverflow.com/questions/205064/ – thiton

+0

LOGLEVEL을 변경하고 프로세스를 변경하려는 경우 - 두 개의 myscript 프로세스에 대해 변경된 것으로 나타냅니다. – Mark

+0

@Mark : 두 첨자의 프로세스에 대해 LOGLEVEL이 변경되거나 개별 프로세스에 대해 변경할 수 있는지 여부는 중요하지 않습니다. 본질적으로 나는 프로세스에 대해 말하는 작업 방식을 찾고있다. 더 많은 정보를 로그 파일에 출력해야한다. –

답변

11

일반적으로 프로세스가 시작될 때 프로세스의 환경 변수에만 영향을 줄 수 있습니다. 실행중인 프로세스에 변경 사항을 전달해야하는 경우 환경이 올바른 도구가 아닙니다.

그러나 this question에는이 제한을 극복 할 수있는 방법이 제시되어 있습니다.

토론의 질문에 덧붙여 편집 : 가끔씩 설치 프로그램을 실행중인 프로세스로 변경하는 좋은 방법은 LOGLEVEL 값이 설정된 구성 파일을 지정하고 프로세스에 SIGHUP을 보내고 SIGHUP을 받으면 프로세스가 구성 파일을 다시 읽도록하십시오. 리눅스

+1

링크 및 실마리를 올바르게 관리하는 방법에 대해 고마워합니다. SIGHUP에 대해 더 많이 읽었으며 Wikipedia에서 발견했습니다. _Daemon 프로그램은 SIGHUP을 신호로 사용하여 가끔씩 다시 시작하는 신호로 사용합니다. 수정 된 구성 파일을 읽었습니다. _ –

-2

:

strings –a /proc/<pid_of_the_process>/environ 

또는

ps eww <pid_of_the_process> 
+6

그 내용이 인쇄되고 질문은 수정되었습니다. 도움이 안돼. – rektide

관련 문제