已解決 我需要在MakeFile中產生後臺進程,並考慮它們的退出代碼。 場景:在MakeFile中聆聽後臺進程的退出代碼
- 幾個進程在後臺催生。
- 生成文件繼續評估(不要想檢查子進程的PID在一些循環的等等)
- 一些過程與非零退出代碼退出 與非零退出代碼
- make程序退出
當然,我認爲使用command &
在後臺產生一個進程。
問題:如果像command &
指定的命令然後進行處理不跟蹤它的退出代碼。
樣品1個
do:
@false & \
echo "all is normal"
%make -f exit_status_test.mk
all is normal
樣品2
do:
@false && \
echo "all is normal"
%make -f exit_status_test.mk
*** Error code 1
Stop in /usr/home/scher/tmp/lock_testing.
樣品1所顯示,使實用程序不考慮後臺進程退出代碼。
P.S.請不要建議存儲產生的進程PID,並檢查它們的延遲等等。需要繼續評估MakeFile並自動退出非零代碼。
解決方案
do:
@(echo "background command" ; (echo "[HANDLER] Prev command exits with $$?")) & \
echo "doing something"
因此,我們可以創建一個命令序列來處理後臺進程的退出狀態。
製作並沒有這樣做。 – bmargulies