GNU make
R에서 다양한 쓰기/읽기 호출을 시작하는 데 사용하는 벤치마크입니다. 어떤 경우에는 RAM이 완전히 사용되어 프로세스가 종료될 수 있습니다(한계를 확인하고 싶기 때문에 괜찮습니다).
그러나 문제는 특정 스크립트 호출뿐만 아니라 전체 make 프로세스가 종료된다는 것입니다.
Makefile
예를 들어, 다음과 같은 target 이 있고 대상이 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
...
스크립트가 첫 번째 줄의 대상을 터치하므로 실행 종료 여부에 관계없이 대상이 생성됩니다.
답변1
이는 명령이 실패하면 Make가 기본적으로 실행을 중지하기 때문에 발생합니다.
다음 방법으로 이 기능을 비활성화할 수 있습니다.명령 앞에 다음을 붙입니다.-
:
small.csv: tester.R
-Rscript tester.R --size small
large.csv: tester.R
-Rscript tester.R --size large
또는 make
옵션을 사용하여 -k
가능한 경우 오류 후에도 계속 실행되도록 지시할 수 있습니다.