如何重定向stderr for openvt

时间:2013-02-11 14:44:33

标签: linux bash tty

我必须在特定的tty上启动我的TextUI守护进程重新生成。为此,我从脚本中启动它,如下所示:$set_tty $launch_app,其中

  • set_tty="openvt -c1 -s -w"
  • launch_app="my_daemon 2>'$HOME'/logfile"

这样我就可以启动看起来像openvt -c1 -s -w my_daemon 2>'$HOME'/logfile的命令,它只从openvt本身重定向到指定的日志文件,而不是从我的守护进程重定向到。{/ p>

如何重定向openvt的被调用者stderr?

我尝试使用功能:

go () { my_daemon 2>"$HOME"/logfile; }
openvt -c1 -s -w

它不起作用,opentty立即返回控制产生任何东西。

我尝试了exec 2>>"$HOME"/logfile

我尝试使用该功能启动单独的脚本。该脚本无法通过openvt运行,但如果我使用相同的参数手动启动它,则运行正常。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

一个可能的答案可能是包装shell脚本,其内容将负责生成您的守护程序,并将stderr重定向到您选择的日志文件。

[anew@bucket ~]$ cat test.sh 
#!/bin/bash
echo "Testing openvt" > /tmp/openvt-example

[anew@bucket ~]$ sudo openvt -c7 -s -w /home/anew/test.sh
[anew@bucket ~]$ cat /tmp/openvt-example
Testing openvt
[anew@bucket ~]$