0

Linuxでアプリケーションのインスタンスが1つだけ実行されることを保証する方法を探していました。「最良」と思われるアドバイスは、ファイルを開いてからロックすることです。ただし、名前付きPOSIXセマフォを開き、排他的アクセスを要求することによってこれを行うことも可能です。私のWindowsに追加された頭脳にとって、これはより良いアプローチのように思えます。誰かがこのアプローチの欠点とファイルロックが好ましい理由を説明できますか?

4

1 に答える 1

3

投稿したkernel.orgページから:

Persistence
      POSIX named semaphores have kernel persistence: if not removed by
      sem_unlink(3), a semaphore will exist until the system is shut down.

を明示的に呼び出す前にプロセスがsem_unlink()停止すると、再起動するまでアプリケーションを再度開くことができなくなります。

ただし、ファイルロックを使用していた場合は、何らかの理由でプロセスが終了すると解放されます(リンクしたSOの質問で述べたように)

于 2013-01-16T19:30:58.913 に答える