我正在关注job_script.sh
:
#!/bin/bash
singularity --debug run --app ${APP} \
--bind "vol/on/host":"vol/on/container" \
${IMG_DIR}/${IMG_NAME}
使用sbatch
命令(它是长时间运行的工作):
sbatch -p ${QUEUE} --qos=${QOS} --job-name ${JOB_NAME} -o ${JOB_NAME}.o%J -e ${JOB_NAME}.e%J job_script.sh
我想要实现的是在正在运行的容器中执行命令,该容器在以下slurm作业中运行:
$ squeue -u $USER
JOBID ARRAY_TASKPARTITION NAME USER STATE NODELIST(REASON) CPUS NODES TRES_PERSTART_TIME TIME
7988346 N/A defq rstudio myuser RUNNING nc023 1 1 N/A 2019-11-25T06:23:32 2:38:03
答案 0 :(得分:1)
使用singularity exec
或singularity run
时,您生成的是单个进程,很遗憾,您无法在与docker run ...
相同的上下文中运行其他进程。
但是,如果您使用singularity instance start some_instance_name
,则可以执行此操作。之后,您可以使用singularity shell
或singularity exec
访问与正在运行的作业相同的环境。 More details are available in the documentation。