2012-01-12 34 views
1

我創建了一個bash腳本並在後臺運行。它有一個存儲在文件中的PID,我可以使用KILL將預定義的信號傳遞給進程。如何將信息傳遞給bash中的後臺進程

但是,我不時手動將信息傳遞給過程。最好是我想要發生的事情是能夠傳遞一個字符串或信息數組,這些信息是通過TRAP捕獲的,然後在bash文件中的永久循環將處理這些信息。有沒有簡單的方法將信息傳遞到後臺進程?

感謝

回答

5

您可以創建一個fifo,讓主進程寫入並讓孩子讀取它。

mkfifo link 
run_sub < link & 
generate_output > link 
+0

非常酷的功能。去測試它,看它是否適合我的程序。我正在考慮在bash中創建類似數據結構的隊列,但似乎有人已經打敗了我。 – jliu83 2012-01-12 15:39:10

+0

我沒有試過這個,但我會記住它。那是各種各樣的真棒。 – mmrtnt 2012-01-12 16:03:03

+0

嗯..有沒有辦法讓讀取管道非塊? – jliu83 2012-01-12 21:29:21

0

有它監聽套接字和實施協議來實現你的目標溝通,可能有點太多了慶典。

或者,它試圖在接收到特定信號時讀取特定文件。例如,程序在收到HUP時重新讀取其配置文件是很常見的。