2014-12-02 1 views
2

env 변수를 특정 시간 (초) 동안 설정 한 다음 재설정하는 방법이 있습니까? 나는 env 변수를 읽는 스크립트를 가지고있다. 설정되어 있으면 스크립트가 종료되어야합니다. 기본적으로 스누즈 알고리즘을 만들려고합니다. 예. 메시지를 수신함과 동시에 메시지를 계속 보냅니다. 그러나 때로는 t 초 동안 스누즈해야합니다. t 초 동안 모든 수신 메시지를 버퍼링하고 타이머 t가 만료되면 버퍼 내용을 보냅니다. 내 접근 방식은 사용하는 것입니다tv 동안 env 변수를 bash에 설정하십시오.

if [ $MY_ENV=set ] 
    then 
    buffer 
fi 

그러나이 env 변수는 셸 특정이 아니어야합니다. 그것은 동일한 기계의 다른 위치에서 로그인 한 모든 사용자를위한 것이어야합니다.

답변

1

타이밍 부분에 관계없이 이미 실행중인 프로세스의 환경에서 해당 프로세스 외부의 변수를 설정할 방법이 없습니다.

이 작업에는 파일 시스템을 사용해야합니다. 사용자별로 다르면 예를 들어 사용자의 홈 디렉토리에있는 파일 일 수 있습니다.

+0

네 접근법은 간단하고 쉬우 며, t 초 동안 변수 (예 : 플래그) 내용을 1로 설정하는 스크립트를 작성한 다음 주 스크립트가 파일 내용을 읽어야합니다 (varialbe가 설정되거나 설정 해제). – user1977867

1

셸 특정하면 안된다, 나는이 목적을 위해 어떤 종류의 잠금 파일을 사용하고 싶습니다. 잠금 파일이 있으면 var가 설정되는 것과 동일합니다. t 초 후에 삭제할 일정이있을 수 있습니다.

lockfile 명령을 확인하십시오.