Make
Make:啟動程序,如果被殺死,則不會殺死 make
我用來
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
選項執行,告訴它在發生錯誤後儘可能繼續執行。