我使用GNU make在R中启动不同的写/读调用的基准测试,在某些情况下,这将导致我的RAM被充分使用,进程被终止(这很好,因为我希望看到限制)。
然而,问题是,整个make过程被终止,而不仅仅是特定的脚本调用。
例如,假设我有下面的Makefile,目标small.csv工作正常,large.csv崩溃(有点预料),但是现在其他的...目标没有构建。
问题是,如何以某种方式启动进程(Rscript tester --size large),在一个进程被杀死后,make可以继续另一个(...)基准测试?
# Makefile
.PHONY: all
all: small.csv large.csv ...
small.csv: tester.R
Rscript tester.R --size small
large.csv: tester.R
Rscript tester.R --size large
...请注意,脚本在第一行中触及目标,因此目标总是被创建,不管运行是否被终止。
发布于 2020-03-02 15:05:07
发生这种情况的原因是,如果任何命令指示其失败,Make默认会停止执行。
您可以通过前缀命令-禁用此功能:
small.csv: tester.R
-Rscript tester.R --size small
large.csv: tester.R
-Rscript tester.R --size large或者,您可以使用make选项运行-k,让它在错误发生后尽可能地继续运行。
https://unix.stackexchange.com/questions/570722
复制相似问题