2016-08-15 8 views
-2

異なるディレクトリに多くのケースがあるCFDモデルを自動的に実行するスクリプトがあります。次に、ディレクトリがすでにプロセスを実行しているかどうかをチェックしたいのですが、スクリプトはユーザーに警告し、そのディレクトリで実行しません。ディレクトリ内に実行中のプロセスがあるかどうかシェルスクリプトのチェック

それを確認する方法はありますか?

私を助けてください!

+0

'lsof'または' fuser'ですか? – Cyrus

+0

「ディレクトリ内」とは何ですか?その別のプロセス*にはディレクトリが開かれていますか?ディレクトリ内の実行可能ファイルが実行されていますか?そのディレクトリへのシェルのcdは数えますか?他のプロセス、または同じスクリプトの別のコピー?これは現在書かれているように非常に曖昧です。 –

+0

こんにちは! 私のスクリプトはPimpleFoamのように、各ディレクトリに入ってアプリケーションを実行します。 そして、このディレクトリがすでにPimpleFoamを実行しているかどうかをチェックしたいと思います。 –

答えて

0

ベストプラクティスの方法は、実行しないようにする各スクリプトに同時にディレクトリをロックさせることです。お使いのオペレーティングシステムは、Linux、flockであると仮定すると、

は仕事のための適切なツールです:

#!/bin/bash 

# open lockfile in current directory 
# if operating on a directory given as an argument, update appropriately 
exec 99>.lock 

# grab a lock 
flock -x 99 || { 
    echo "Could not grab lock" >&2 
    exit 1 
} 

# do your other calculations here 

も参照してください:

関連する問題