我有一個寫入標準輸出的過程,我希望能夠在運行尾部-f時通過對各種字符串進行刷新來監視輸出。做到這一點的一種方法是寫入一個普通文件,然後尾隨文件grepping一個字符串,然後尾巴grep爲另一個。但是,我不想寫入文件,因爲這會填滿磁盤,而且我不想處理旋轉日誌文件的麻煩。在bash中,如何找出當前正在寫入的fifo,然後再次結束fifo,尋找不同的文本?
我以爲我可以使用fifos來實現這一點。例如,
mkfifo myfifo
foo > myfifo &
tail -f myfifo | grep bar
tail -f myfifo | grep baz
不幸的是,這似乎並不奏效。實際上,當我第一次執行tail -f myfifo
然後foo > mfifo
時,我看到任何輸出的唯一方法,但我不想重新啓動foo(這是整個要點,否則我可以直接grep標準輸出並重新啓動進程grep爲不同的字符串)。有誰知道爲什麼會發生這種情況,或者有關於如何實現這一點的建議?
是爲[Linux的無阻塞FIFO的解決方案(按需日誌記錄)](http://stackoverflow.com/q/7360473/95735)你想要的東西? –