0
我有一個unix命名管道的問題。 考慮我們有一個程序A,它將輸出寫入管道(考慮P), 和另一個程序(考慮B)使用這個管道作爲輸入文件。問題是如何在程序B失敗時從外部中斷程序A. 的情況與此類似僞腳本:如何使用管道中斷程序
mkfifo P
A -output P &
B -input P &
if ($! != 0) //somehow interrupt A
我有一個unix命名管道的問題。 考慮我們有一個程序A,它將輸出寫入管道(考慮P), 和另一個程序(考慮B)使用這個管道作爲輸入文件。問題是如何在程序B失敗時從外部中斷程序A. 的情況與此類似僞腳本:如何使用管道中斷程序
mkfifo P
A -output P &
B -input P &
if ($! != 0) //somehow interrupt A
保持PID:
mkfifo P
A -output P &
pidA=$!
B -input P
if ($? != 0)
kill $pidA
$!
擴展爲最近執行的後臺命令的PID。
$?
擴展到退出代碼。
注意這個工作,你不能在後臺運行B
,因爲你不能得到它的退出代碼。
如果你仍想在後臺運行,請使用:
(B -input P || kill $pidA) &