1

fcntlロック用の既存のライブラリ (つまり、おそらく他のライブラリ)に依存することなく、Python で単純なロック メカニズムを作成したいと考えています。

私はすでに小さなスタブを持っていますが、少し検索した後、ロックファイルを手動で作成してプロセス PID を内部に配置する方法についての良い答えが見つかりませんでした。ここに私のスタブがあります:

dir_name = "/var/lock/mycompany"
file_name = "myapp.pid"
lock = os.path.join(dir_name, file_name)

if os.path.exists(lock):
    print >> sys.stderr, "already running under %s, exiting..." % lock
    # display process PID contained in the file, not relevant to my question
    sys.exit(ERROR_LOCK)
else:
    # create the file 'lock' and put the process PID inside

lock現在のプロセス PID を取得してファイルに入れるにはどうすればよいですか? ファイルシステムを調べることも考えまし/procたが、このような単純なタスクには少し多すぎるようです。

ありがとう。

4

3 に答える 3

2

http://docs.python.org/library/os.html#os.getpid

于 2012-04-18T19:23:15.547 に答える
1

open(lock, 'w').write(os.getpid())

于 2012-04-18T19:26:35.797 に答える
0

os.getpid() の結果を str(os.getpid()) で文字列に変換することを忘れないでください。write には文字列引数が必要です。

于 2012-04-19T01:20:15.897 に答える