2012-01-12 71 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时重新读取其配置文件是很常见的。