You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

bsub命令生成新shell后后续命令未执行,求合并式解决方法

HPC交互式作业启动Jupyter Notebook的合并解决方案

因为bsub -Is bash会创建全新的交互式shell,原脚本中后续命令会在父shell执行,无法进入新启动的作业shell。以下是无需拆分脚本的合并解决方法:

方法1:通过bash -c传递命令串

将所有需要在作业shell中执行的命令打包成字符串,通过bash -c参数传入,确保命令在新shell内执行:

bsub -n 10 -W 4:00 -Is bash -c "source ~/.bashrc && conda activate env && cd /lustre/scratch/user/ && jupyter notebook --no-browser --ip=127.0.0.1 --port=8850"

注:如果你的conda在非交互式shell中无法自动初始化,必须显式source ~/.bashrc(或对应的配置文件,比如~/.zshrc)加载conda环境。

方法2:使用Here-Doc传递多行命令

如果命令较多,用Here-Doc格式更易读,同时保证命令完全在新shell中执行:

bsub -n 10 -W 4:00 -Is bash << 'EOF'
# 加载shell配置以初始化conda
source ~/.bashrc
# 激活目标环境
conda activate env
# 切换到工作目录
cd /lustre/scratch/user/
# 启动Jupyter Notebook
jupyter notebook --no-browser --ip=127.0.0.1 --port=8850
EOF

这里用单引号包裹EOF,避免父shell解析命令中的变量或特殊字符,确保命令原封不动传入作业shell。

额外提示

如果集群要求先加载Anaconda模块,需在命令开头添加module load anaconda3(根据集群实际模块名调整)。

内容的提问来源于stack exchange,提问作者Sushant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:22:38