2013. 3. 22. 13:25
프로그래밍/파이썬
파이썬 스크립트를 만들어서 사용하다보면 불가피하게 중복실행을 방지해야할 필요가 있다. 그럴 때는 아래와 같은 코드를 이용하면 쉽게 피할 수 있다.
import fcntl pid_file = 'program.pid' fp = open(pid_file, 'w') try: fcntl.lockf(fp, fcntl.LOCK_EX | fcntl.LOCK_NB) except IOError: # another instance is running sys.exit(1)
스크립트가 실행되면 program.pid에 락을 걸어서 중복실행을 막는 구조로 되어있다. 이러한 경우 파일을 처음 만들어 쓴 유저로 권한이 가기때문에 권한 문제가 생길 수 있으니 주의해야한다.
출처 : http://stackoverflow.com/questions/220525/ensuring-a-single-instance-of-an-application-in-linux