1
A
回答
2
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
0
LSF將設置在作業環境中的一些環境變量,如$LSB_JOBID
執行。您可以編寫腳本來檢查是否定義了此環境變量。如果不是,請解釋腳本只能作爲LSF作業運行,然後退出。
0
我猜你可能預期的LSF工作由res
開始,這樣你就可以檢查是否有同一進程羣在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; }
+0
繼承我已將-u $(id -un)添加到ps命令。當不是lsf時它退出。 但是如果每個bjob都有res的過程,我們如何才能確定哪個res屬於哪個bjob –
+0
我想你可以使用作業的進程組來標識與這個特定作業相關的'res'實例;請參閱編輯。 – mustaccio
相關問題
- 1. 確保PHP腳本僅作爲cron作業運行?
- 2. crontab作業未執行shell腳本
- 3. shell腳本不從cron作業執行
- 4. Oozie shell腳本作業
- 5. LSF - BSUB運行腳本如果作業被殺害
- 6. sqoop作業shell腳本在oozie中並行執行
- 7. Shell腳本手動運行,但不通過cron作業執行
- 8. 使用shell腳本變量和運行作爲cron作業
- 9. CakePHP shell腳本不會作爲cron作業運行
- 10. shell腳本幫助cron作業未執行
- 11. 使用谷歌雲數據流執行shell腳本作業
- 12. PBS腳本(串行作業)的作業執行時間
- 13. 無法在Cygwin來執行shell腳本作爲KornShell腳本
- 14. 執行從Java,Shell腳本Shell腳本已經閱讀操作
- 15. LSF作業路由算法
- 16. 在grails中執行腳本作業
- 17. 使用cron作業執行PHP腳本
- 18. Cron作業未執行Perl腳本
- 19. Cron作業,執行php腳本
- 20. AWS Linux crontab作業未執行腳本
- 21. Symfony2從cron作業執行腳本
- 22. Django:Cron作業未執行python腳本
- 23. 使用CRON作業執行PHP腳本
- 24. 使用Cron作業執行PHP腳本?
- 25. Rails執行腳本作爲後臺作業
- 26. SLURM:保存作業腳本
- 27. LSF上的MPI + OpenMP作業提交腳本
- 28. Linux cron作業無法執行在shell中工作的部分腳本
- 29. * .ps1腳本可以作爲後臺作業自己執行* .ps1腳本嗎?
- 30. 執行shell腳本
我能抽到作業ID。什麼是LSF將設置的其他環境變量?是否有這些變量的任何文檔 –
您可以在此找到完整列表(https://www.ibm.com/support/knowledgecenter/SSETD4_9.1.3/lsf_config_ref/lsf_envars_job_exec。 dita?lang = en) –
但是用戶仍然可以在自己的終端上設置這些變量並執行腳本而不用作爲bjob啓動。腳本無法確定這些變量是來自LSF還是從終端 –