【发布时间】:2011-10-07 01:49:08
【问题描述】:
我正在使用这样的脚本在外部控制一个运行时间很长的进程的标准输入和标准输出:
#!/bin/sh
touch process.stdin
tail -fn0 process.stdin | my_process > process.stdout
这工作正常,除非当 my_process 退出时,尾部进程不会退出。当 my_process 退出时,有没有办法让尾巴退出?
或者有没有更好的设置方法?
【问题讨论】:
-
来自
man tail:--pid=PID with -f, terminate after process ID, PID dies。如果你知道 pid...? -
我怎样才能获得 my_process 的 pid 但仍然能够通过管道传输到它?
-
不管怎样,我尝试了
--pid=$$和exec my_process,但没有太大的成功。 -
你想达到什么目的? my_process 做什么,它是一个脚本吗?这取决于但可能创建一个命名管道可以使其更简单。
-
您想跟踪正在写入到
process.stdin的进程的PID。