2010-06-02 6 views
1

가능한 복제를 실행할 수 만들기 : 나는 파이썬 스크립트는 의미에서 고유하게 찾고
Python: single instance of program는 파이썬 스크립트를 한 번에 한 번

이 수 한 번에 한 번만 실행하십시오. 예를 들어 스크립트를 실행하고 동일한 스크립트의 다른 세션을 두 번째로 열고 첫 번째 세션이 아직 실행중인 경우 두 번째 세션은 종료되고 아무 것도 수행하지 않습니다. 누구든지 이걸 어떻게 구현할 수 있는지 알고 있니?

+0

http://stackoverflow.com/questions/380870/ python-single-instance-of-program http://stackoverflow.com/questions/220525/ensuring-a-single-instance-of-an-application-in-linux http://stackoverflow.com/questions/1900979/ 방법 피하기 - 복수 인스턴스 프로그램 –

+0

이미 [여기] (http://stackoverflow.com/questions/380870/python-single-instance-of-program)에 답변했습니다. – RSabet

답변

0

가난한 사람의 해결책 중 하나는 파일 기반 잠금을 사용하는 것입니다. os.open()을 사용하여 파일을 열면 파일에 단독 잠금을 허용하는 플래그가 있습니다. 참조 용으로 this을 참조하십시오.

1

파이썬 이전에 기록되지 않습니다,하지만 난 그냥, mycheckpoint에서 구현 한이 있으며 crond에 의해 두 번 이상 시작되지 않도록하는 것입니다 마십시오 :

import os 
import sys 
import fcntl 
fh=0 
def run_once(): 
    global fh 
    fh=open(os.path.realpath(__file__),'r') 
    try: 
     fcntl.flock(fh,fcntl.LOCK_EX|fcntl.LOCK_NB) 
    except: 
     os._exit(0) 

run_once() 
관련 문제