シェルスクリプトを持っていて、それを通常のジョブとして実行しないようにしたい。私がスクリプトでシェルスクリプトがlsfジョブとしてのみ実行されるようにする
答えて
lsfError="**ERROR: Local jobs disabled. Please run through LSF only --"
lsfExit=2
lsfLog="$(getent passwd $(id -un) | cut -d: -f6)/.lsbatch/.lsf_${LSB_JOBID}.log"
echo "**INFO: Verifying as LSF job ..."
sleep 2s
if [ -z "$LSB_JOBID" ]; then
echo "$lsfError"; exit $lsfExit
elif [[ "$(bjobs $LSB_JOBID 2>&1)" =~ "not found" ]]; then
echo "**ERROR: Job $LSB_JOBID doesn't exist" > $lsfLog
echo "$lsfError"; exit $lsfExit
elif [[ "$(bjobs -o 'command' -noheader $LSB_JOBID 2>&1)" != "$0" ]]; then
echo "**ERROR: Command not matched $(bjobs -o "command" -noheader $LSB_JOBID 2>&1) != $0" > $lsfLog
echo "$lsfError"; exit $lsfExit
fi
LSFは、$LSB_JOBID
として、ジョブ環境でいくつかの環境変数を設定しますと、このことを確認するにはどうすればよいLSF
にのみbjobとして実行する必要があります。この環境変数が定義されているかどうかを確認するスクリプトを書くことができます。そうでない場合は、スクリプトをLSFジョブとして実行して終了するように指示してください。
私は同じプロセスグループ内res
プロセスがあるかどうかをチェックすることができますので、あなたは、LSFジョブがres
によって開始されていることが期待できると思い、私が取得することができた
_pgid=`ps -o pgid --no-headers -p $$`
ps -o comm,pgid --no-headers | grep -qE '^res\s+'${_pgid// /}'$' || { echo "Must submit as LSF job!"; exit 1; }
psコマンドに-u $(id -un)を追加しました。 lsfではないときに終了しました。 すべてのbjobに対してresプロセスがある場合、どのresがどのbjobに属しているかを特定するには –
ジョブのプロセスグループを使用して、この特定のジョブに関連する 'res'インスタンスを特定できると思います。編集をご覧ください。 – mustaccio
- 1. 現在ログインしているユーザーとしてシェルスクリプトが実行されるときにシェルスクリプトが実行される
- 2. LSF - BSUBジョブが終了した場合にスクリプトを実行する
- 3. 他のジョブが現在Microsoft SQL Server Management Studioで実行されていない場合にのみジョブを実行するようにスケジュールします。
- 4. Linuxシェルスクリプトがcronジョブで実行されているかどうか確認するには?
- 5. 多くのジョブがタイムスタンプで実行されるようにスケジューリングする
- 6. Androidデバイスが接続されているときにシェルスクリプトを実行するようにlaunchdを設定する
- 7. launchd .plistファイルを使用してシェルスクリプトを実行しようとすると、アクセスが拒否されました
- 8. MakeファイルのLSFジョブ配列
- 9. Sidekiqは他のジョブが実行された後にジョブを実行します
- 10. cronジョブによって実行されるスクリプトの相対パス
- 11. プッシュイベントでgitlabジョブが実行されないようにするには
- 12. は、シェルスクリプトからコマンドを実行し、私はこのような行が含まれているファイル読み取りしようとしている
- 13. AWSでスケジュールされたジョブとして実行するようにGolang実行ファイルを設定するにはどうすればよいですか?
- 14. Maui - ジョブが同じノードで実行されないようにする
- 15. SQL Serverジョブはスケジュールされたジョブで実行中にエラーで終了しますが、手動でジョブを実行するとうまく動作します。
- 16. 与えられたジョブのLSFジョブ状態
- 17. Springバッチスケジューラ:ジョブリスナーは、ジョブが初めて実行されるときにのみ動作します。
- 18. Hudson:現在実行中のジョブのconfig.xmlを更新し、実行中のジョブが更新されたconfig.xmlを即座に認識するようにする
- 19. django "manage.py index"がcronジョブとして実行されません
- 20. シェルスクリプトがステップで実行されます
- 21. ジョブとして実行するとSSISパッケージが失敗する
- 22. LSF - 提出されたジョブのIDを取得
- 23. google cloud dataflowジョブを使用してシェルスクリプトを実行
- 24. 長時間実行中のWebジョブがAzureによって中止される
- 25. SQL構文エラー(スケジュールされたジョブとして実行されている場合のみ)
- 26. スケジュールされたジョブを実行する
- 27. Dockerfile:RUNシェルスクリプトを実行しようとしたときのコード127
- 28. シェルスクリプトのコードが他の操作の前に実行される
- 29. サブプロセスを使用してシェルスクリプトを呼び出すと、シェルスクリプト内のすべてのコマンドが実行されない
- 30. シェルスクリプトは個別に実行されていますが、正しい結果がcrontabジョブとして生成されない
のようなものジョブID。 LSFが設定する他の環境変数は何ですか?これらの変数のドキュメントはありますか? –
完全なリスト[ここ](https://www.ibm.com/support/knowledgecenter/SSETD4_9.1.3/lsf_config_ref/lsf_envars_job_exec)があります。 dita?lang = en) –
しかし、まだユーザーは、これらの変数を端末に設定して、スクリプトを実行して、bjobとして起動することはできません。スクリプトがこれらの変数がLSFか端末から継承されているかどうかを判断できませんでした –