2009-06-11 49 views
1

我有一个应用程序,它产生了几个进程。是否可以将孩子的输出重定向到另一个隐藏的终端,以便它不会与父输出混合,并让终端用户在需要时取消隐藏终端?绑定应用程序到几个Linux终端

谢谢。

+0

您可以更改产卵子进程的程序? – 2009-06-12 02:20:58

回答

1

快速而肮脏的方法是将子进程的输出重定向到一个(临时)文件。

甲终端跟踪该文件然后可以使用一个命令等

xterm -e tail -f /tmp/child1.out 

该终端可以被关闭并在需要时打开开始。

如果您不想将输出存储在文件中,可以使用fifo(请参阅mkfifo(1)),但由于fifo不存储数据,您将无法查看过去的输出。

+0

我想过把输出抽到FIFO中问题是,如果没有人正在从FIFO中读取数据,并且我的应用程序正在运行数周,是不是会用这种不必要的输出填充OS的RAM? – jackhab 2009-06-11 08:15:26

0

从你的终端,运行:

touch proc1.log 
xterm -e tail -f proc1.log 
topuch proc2.log 
xterm -e tail -f proc2.log 
/run/proc/1.sh >> proc1.log 
/run/proc/2.sh >> proc2.log 

现在你有2个终端的子进程

0

屏幕可以做到这一点的输出以下。您可以使用新程序启动分离的屏幕。

喜欢的东西:

screen -d -m -S my-emacs-session emacs foo.c