-2
異なるディレクトリに多くのケースがあるCFDモデルを自動的に実行するスクリプトがあります。次に、ディレクトリがすでにプロセスを実行しているかどうかをチェックしたいのですが、スクリプトはユーザーに警告し、そのディレクトリで実行しません。ディレクトリ内に実行中のプロセスがあるかどうかシェルスクリプトのチェック
それを確認する方法はありますか?
私を助けてください!
異なるディレクトリに多くのケースがあるCFDモデルを自動的に実行するスクリプトがあります。次に、ディレクトリがすでにプロセスを実行しているかどうかをチェックしたいのですが、スクリプトはユーザーに警告し、そのディレクトリで実行しません。ディレクトリ内に実行中のプロセスがあるかどうかシェルスクリプトのチェック
それを確認する方法はありますか?
私を助けてください!
ベストプラクティスの方法は、実行しないようにする各スクリプトに同時にディレクトリをロックさせることです。お使いのオペレーティングシステムは、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
も参照してください:
'lsof'または' fuser'ですか? – Cyrus
「ディレクトリ内」とは何ですか?その別のプロセス*にはディレクトリが開かれていますか?ディレクトリ内の実行可能ファイルが実行されていますか?そのディレクトリへのシェルのcdは数えますか?他のプロセス、または同じスクリプトの別のコピー?これは現在書かれているように非常に曖昧です。 –
こんにちは! 私のスクリプトはPimpleFoamのように、各ディレクトリに入ってアプリケーションを実行します。 そして、このディレクトリがすでにPimpleFoamを実行しているかどうかをチェックしたいと思います。 –