Make

Make:啟動程序,如果被殺死,則不會殺死 make

  • March 2, 2020

我用來GNU make在 R 中啟動不同寫入/讀取呼叫的基準測試。在某些情況下,這將導致我的 RAM 被完全使用並且程序被終止(這很好,因為我想查看限制)。

然而問題是,整個製作過程被殺死,而不僅僅是特定的腳本呼叫。

例如,假設我有以下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

...

請注意,腳本在第一行接觸了目標,因此無論執行是否被終止,都會始終創建目標。

發生這種情況是因為如果任何命令表明它失敗,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