在SLURM集群中,我正在提交一个调用python脚本的shell脚本(这两个脚本都可以在下面找到。当执行shell脚本时,直到调用python脚本为止,然后什么都没有发生:没有输出,没有错误消息,并且SLURM作业继续运行。
我假设python脚本的所有内容都不相关(但我还是将其包括在内以完成操作)。出于调试目的,我在开始时插入了print("script started")
行,以查看它是否可以运行但没有运行。我在输出中看到的最后一件事是moved to directory
。
我尝试在此之前调用包含test.py
的{{1}}脚本,该脚本可以正常执行。
python脚本无法启动的原因可能是什么,我该如何解决?
编辑:由于jakub用户建议成功将print("test")
更改为print("script started")
,因此需要打印。包括另外几条这些语句表明该脚本实际上运行得很好,只是没有输出任何内容。在for循环中包含不断执行的同一条语句,也会使以前缺少的所有print("script started",flush=True)
条语句得到打印。
然后问题变成:为什么这里的print()
语句需要在此脚本中有print()
,而在其他脚本中没有{1>}?
Shell脚本:
flush=True
Python脚本:
#!/bin/bash
#SBATCH [email protected]
#SBATCH --mail-type=end,fail
#SBATCH --output=out-ncl
#SBATCH --error=err-ncl
#SBATCH --job-name="Mask RCNN nucleus training and detection"
#SBATCH --time=24:00:00
#SBATCH --partition=gpu
#SBATCH --mem-per-cpu=64G
#SBATCH --gres=gpu:gtx1080ti:1
#SBATCH --constraint=rtx2080
conda init bash
source ~/.bashrc
conda activate nucl
cd MRCNN/samples/nucleus
echo "moved to directory"
python nucleus-pipeline2.py splitTMA
echo "Split TMAs"