Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 向子进程转发信号_Unix_Signals - Fatal编程技术网

Unix 向子进程转发信号

Unix 向子进程转发信号,unix,signals,Unix,Signals,我有一个shell脚本,它启动到远程主机的ssh会话,并将输出通过管道传输到另一个本地脚本,如下所示: #!/bin/sh ssh user@host 'while true ; do get-info ; sleep 1 ; done' | awk -f parse-info.awk 它很好用。我在djb daemontools的“监督”程序下运行它。唯一的问题是关闭守护进程。如果终止此shell脚本的进程,ssh和awk进程将继续作为孤立进程运行。通常,我会用exec替换监督shell进程

我有一个shell脚本,它启动到远程主机的ssh会话,并将输出通过管道传输到另一个本地脚本,如下所示:

#!/bin/sh
ssh user@host 'while true ; do get-info ; sleep 1 ; done' | awk -f parse-info.awk
它很好用。我在djb daemontools的“监督”程序下运行它。唯一的问题是关闭守护进程。如果终止此shell脚本的进程,ssh和awk进程将继续作为孤立进程运行。通常,我会用
exec
替换监督shell进程来解决这个问题,但这两个进程在各自的子shell中运行,不能替换shell进程


我想做的是让监控shell脚本将它接收到的任何信号“转发”到至少一个子进程,这样我就可以断开管道并干净地关闭。有没有一种简单的方法可以做到这一点?

进程间通信

你应该看看管道等等