簡體   English   中英

存在第二個管道時退出管道中的第一個進程

[英]Exiting first process in pipe when second exists

shbash ,當第二個進程退出時,如何在管道中退出第一個進程?

我正在使用以下內容從網絡獲取輸入:

$ nc -l 1234 | myprog

myprog由於內部原因退出,但nc繼續存在。 是否也可以停止nc

在bash中,您可以與控制運算符進行分叉處理,並獲得孩子閱讀$的pid 因此,最簡單的解決方案可能是

$ ( nc -l 1234 & echo $! > /tmp/myprog_kill_pid ) | myprog; kill $(</tmp/myprog_kill_pid); rm /tmp/myprog_kill_pid

當然,這不是很好,也不適合多個正在運行的實例...但是您可以從此開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM