make: 프로세스를 시작합니다. 프로세스가 종료되어도 make는 종료되지 않습니다.

make: 프로세스를 시작합니다. 프로세스가 종료되어도 make는 종료되지 않습니다.

GNU makeR에서 다양한 쓰기/읽기 호출을 시작하는 데 사용하는 벤치마크입니다. 어떤 경우에는 RAM이 완전히 사용되어 프로세스가 종료될 수 있습니다(한계를 확인하고 싶기 때문에 괜찮습니다).

그러나 문제는 특정 스크립트 호출뿐만 아니라 전체 make 프로세스가 종료된다는 것입니다.

Makefile예를 들어, 다음과 같은 target 이 있고 대상이 small.csv제대로 작동하고 large.csv충돌이 발생하지만(다소 예상됨) 이제 다른 ...대상이 빌드되지 않는다고 가정해 보겠습니다 .

Rscript tester --size largemake문제는 한 프로세스가 종료된 후 다른() 벤치마크가 계속될 수 있도록 프로세스()를 시작하는 방법입니다 ....

# 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가능한 경우 오류 후에도 계속 실행되도록 지시할 수 있습니다.

관련 정보