2010-09-17 69 views
0

我有一个启动SSH会话到远程主机和管道输出到另一个地方的脚本,像这样一个shell脚本:转发信号的子进程

#!/bin/sh 
ssh [email protected] 'while true ; do get-info ; sleep 1 ; done' | awk -f parse-info.awk 

它工作正常。我在djb的daemontools的'supervise'程序下运行它。唯一的问题是关闭守护进程。如果我终止此shell脚本的进程,则ssh和awk进程将继续作为孤儿运行。通常我会用exec来解决这个问题,以替换监督shell进程,但这两个进程在它们自己的子shell中运行,并且不能替换shell进程。

我想要做的是让监督shell脚本'转发'它接收到的任何信号到至少一个子进程,这样我就可以打开管道并干净地关闭。是否有捷径可寻?

回答

0

进程间通信。

你应该看管道等