Slurm脚本执行失败(ExitCode 127):qiime.sh命令未找到求助
Slurm运行脚本出现ExitCode 127错误的解决办法
问题描述
运行Slurm批处理脚本时触发ExitCode 127错误,报错信息:
/var/spool/slurmd/job12345/slurm_script: line 25: qiime.sh: command not found
原Slurm脚本
#!/bin/bash #SBATCH --nodes=2 #SBATCH --ntasks-per-node=4 #SBATCH --cpus-per-task=1 #SBATCH --mem=200gb #SBATCH -t 24:00:00 #SBATCH --mail-type=ALL #SBATCH --mail-user=abc@xyz.edu #SBATCH -p wdsp #SBATCH -o qiime2_Sepp.out #SBATCH -e qiime2_Sepp.err ## Load the relevant modules needed for the job #module purge #module load miniconda3 #conda activate qiime2-amplicon-2024.10 #conda init #source ~/.bashrc export TMPDIR=/tmp/ ## Run script qiime.sh
原qiime.sh脚本
#!/bin/bash cd ~/SEPP/ # importing data echo 'Importing Data ...' qiime tools import \ --input-path rep_seqs.fna \ --output-path rep-seqs.qza \ --type "FeatureData[Sequence]" # SEPP Tree construction echo 'SEPP Tree construction ...' qiime fragment-insertion sepp \ --i-representative-sequences rep-seqs.qza \ --i-reference-database sepp-refs-silva-128.qza \ --p-threads 50 \ --p-debug \ --o-tree tree-sepp-new.qza \ --o-placements inser-plac-sepp.qza
核心问题与解决步骤
1. qiime.sh脚本无法被找到
ExitCode 127的直接原因是系统找不到指定的脚本文件,解决方式三选一:
- 使用绝对路径调用脚本:如果
qiime.sh放在~/SEPP/目录下,Slurm脚本里的调用命令改为:~/SEPP/qiime.sh - 切换到脚本所在目录再执行:在Slurm脚本中先进入脚本目录,用相对路径调用:
cd ~/SEPP/ ./qiime.sh - 给脚本添加执行权限:先在本地执行命令,赋予脚本可执行权限:
chmod +x ~/SEPP/qiime.sh
2. QIIME2环境未正确加载
原Slurm脚本中注释了conda环境加载的代码,即使找到qiime.sh,里面的qiime命令也会找不到。需要取消注释并调整代码顺序:
module purge module load miniconda3 conda activate qiime2-amplicon-2024.10
注意:不需要
conda init和source ~/.bashrc,前者是初始化shell配置,后者可能会覆盖当前激活的conda环境。
3. CPU资源配置不匹配
Slurm脚本申请了2节点×4任务×1核=8个CPU核心,但qiime.sh中设置--p-threads 50,远超申请的资源,会导致任务卡死或被集群限制。建议调整为实际申请的核心数:
--p-threads 8
修改后的完整Slurm脚本
#!/bin/bash #SBATCH --nodes=2 #SBATCH --ntasks-per-node=4 #SBATCH --cpus-per-task=1 #SBATCH --mem=200gb #SBATCH -t 24:00:00 #SBATCH --mail-type=ALL #SBATCH --mail-user=abc@xyz.edu #SBATCH -p wdsp #SBATCH -o qiime2_Sepp.out #SBATCH -e qiime2_Sepp.err ## Load the relevant modules needed for the job module purge module load miniconda3 conda activate qiime2-amplicon-2024.10 export TMPDIR=/tmp/ ## Run script cd ~/SEPP/ ./qiime.sh
内容的提问来源于stack exchange,提问作者nomad
相关产品推荐
相关产品推荐

