2015-12-29 16 views
0

我有运行在Sun Grid Engine的HPC一个make命令bash脚本:在SGE上发出qdel命令时,为什么make实用程序无法删除与不完整任务相关的文件?

#submitscript.sh 

module load program1 program2 

set -a 

make 

这个bash脚本运行的makefile文件,它看起来像:

# makefile 
SHELL := /bin/bash 

all: Variants.vcf Variants1.vcf 

Variants.vcf: 
    program1 inputfile > Variants.vcf 

Variants1.vcf: 
    program2 inputfile2 > Variants1.vcf 

我提交关于HPC脚本通过发布:

qsub submitscript.sh 

当我发出qdel删除任务时,正在写入的文件不会被make删除。我会认为qdel命令会导致makefile退出并删除任何未完全写入的目标文件。任何人都可以解释这里发生了什么?

更新

谢谢。我现在意识到我的错误。 Qdel正在杀死整个工作,因为你们都说make不被允许清理。当我将该行添加到makefile时:

.DELETE_ON_ERROR: *.vcf 

然后将错误的文件路径放入program2行,例如。

Variants1.vcf: 
    program2 inputfile2 > /wrong/file/path/Variants1.vcf 

显示期望的行为,并在退出时删除部分写入的文件。

+0

问题是'make'没有被杀害?或者它不是删除配方尚未完成的目标文件?后者很可能是因为你没有设置['.DELETE_ON_ERROR'](http://www.gnu.org/software/make/manual/make.html#Errors)。 –

+0

如果你杀了它怎么能做清理?如果你杀了program1或program2,它可能有机会。 – user2672165

回答

2

来自评论:

如果你杀了,怎么可以再进行清理?如果你杀了program1或program2,它可能有机会。 - user2672165

响应:

我现在意识到我的错误。 Qdel正在杀死整个工作,因为你们都说make不被允许清理。 - user1977981

我在回答这个问题,所以其他有相同问题的用户可以很容易地确定提供的答案。

相关问题