重複の可能性:
Linux で複数のプロセス インスタンスを防止する
デーモン プロセスとして、または入力パラメータを使用して 1 回実行できるマルチスレッド アプリケーションがあります。
アプリケーションがデーモンプロセスとして実行されている場合、ユーザーがこれを再度実行できないようにする必要があります。
編集:皆さんが群れに行くことを提案した後、私はそれを試してサーバーに入れました. サーバーがバウンスされると、ロックファイルを含むすべてのファイルが削除されます:(。どうですか?
重複の可能性:
Linux で複数のプロセス インスタンスを防止する
デーモン プロセスとして、または入力パラメータを使用して 1 回実行できるマルチスレッド アプリケーションがあります。
アプリケーションがデーモンプロセスとして実行されている場合、ユーザーがこれを再度実行できないようにする必要があります。
編集:皆さんが群れに行くことを提案した後、私はそれを試してサーバーに入れました. サーバーがバウンスされると、ロックファイルを含むすべてのファイルが削除されます:(。どうですか?
最も簡単な方法は、ポートにバインドすることです (「プライベート」ディレクトリ内の unix ドメインである可能性があります) 。ポートにバインドできるプロセスは 1 つだけなので、ポートがバインドされている場合、プロセスは実行されています。プロセスが終了すると、カーネルはファイル記述子を自動的に閉じます。プロセスに(未使用の?)ファイル記述子がかかります。通常、デーモン プロセスには何らかのリッスン ソケットが必要です。
ファイル ロックを使用してみることができます。プロセスを開始すると、ファイルを開いてロックし、値 (ファイルのサイズなど) を確認できます。必要な値でない場合は、プロセスを終了できます。必要な値である場合は、ファイルを望ましくない値に変更します。
シェルスクリプトを使用してデーモンを起動および停止することで、同様のことを実装しました。
exe 呼び出しの前の開始スクリプトで、この exe がまだ実行されているかどうかを確認します。まだ実行中であることが判明した場合、新しいプロセスは開始されません。