1. ホーム
  2. python

[解決済み] あるプログラムのインスタンスが1つだけ実行されていることを確認する。

2022-05-24 07:45:51

質問

Pythonicな方法で、プログラムのインスタンスを1つだけ実行させる方法はありますか?

私が思いついた唯一の合理的な解決策は、あるポートでサーバとしてそれを実行しようとし、次に同じポートにバインドしようとする2番目のプログラムです。しかし、それは本当に素晴らしいアイデアではなく、多分これよりもっと軽量なものがあるのではないでしょうか?

(プログラムが時々失敗すること、すなわちセグメンテーションに失敗することを考慮に入れてください - そのため "lock file" のようなものは動作しません)

どのように解決するのですか?

次のコードで解決できます。クロスプラットフォームで、Python 2.4-3.2上で動作します。私はWindows、OS X、Linuxでテストしました。

from tendo import singleton
me = singleton.SingleInstance() # will sys.exit(-1) if other instance is running

最新版のコードは singleton.py . お願い バグをここにファイルしてください .

tendは以下のいずれかの方法でインストールすることができます。