Java アプリとそのための Python ランチャーがあります。Java アプリは、次のコードを使用して複数の起動を回避するためにファイルをロックします。
java.nio.channels.FileLock lock = lockWrapper.getChannel().tryLock();
if (lock == null) {
logger.info("Anotheris already running");
}
lock.release();
staticLock = lockWrapper.getChannel().lock();
Python ランチャーは fcntl を使用して同じファイルをロックしようとしますが、ロックできます。2 つの Java プロセスがこれを行うことはできず、2 つの Python プロセスが同じファイルを排他的にロックすることもできません。しかし、java と python は、どの方向でも可能です。私はopenjdk 6とpython2.7を備えたxubuntuを使用しています。pythonにはportallockerを使用しています。
lockfile =open(lockfilename, 'w+')
portalocker.lock(lockfile, portalocker.LOCK_EX| portalocker.LOCK_NB)
win7でも問題なく動きます。