2013-04-23 2 views

답변

0

공유 세마포 및 작은 공유 메모리를 활용할 수 있습니다. 세마포어 mutex과 공유 메모리 bool is_authenticated을 호출 해 봅시다. mutex은 1 값으로 초기화되고 is_authenticated 값은 false로 초기화됩니다.

그런 다음 인증 프로세스가된다 : 그런 다음 인증 만료 알아서해야

wait(mutex); 

if (!is_authenticated) 
    authenticate(); 
is_authenticated = true; 

signal(mutex); 

. 따라서 세션이 끝났을 때 :

wait(mutex); 

assert(is_authenticated == true); /* if not, you have been compromised */ 
deauthenticate(); 
is_authenticated = false; 

signal(mutex); 
0

이미 동일한 응용 프로그램이 실행중인 경우 프로세스를 체크인 할 수 있습니다. 사용하는 언어에 따라 고급 검사, 리소스 잠금 등을 수행 할 수있는 강력한 라이브러리가 있습니다.

가장 쉬운 해결책은 프로그램이 실행 중임을 나타내는 잠금 파일 (예 :/tmp)을 작성하고 해당 파일이 프로그램의 시작 부분에 있는지 확인하는 것입니다. 이 방법의 단점은 응용 프로그램이 중단 되더라도 잠금 파일이 삭제된다는 것을 확신해야한다는 것입니다.

관련 문제