2013-02-11 46 views
0

我必須在特定的tty上啓動我的TextUI守護進程。爲此目的,我啓動它從一個腳本,像這樣:$set_tty $launch_app,其中如何爲openvt重定向stderr

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

這樣,我得到啓動的命令看起來像openvt -c1 -s -w my_daemon 2>'$HOME'/logfile,會被重定向到指定的只記錄openvt本身的stderr,但不記錄我的守護進程。

它應該如何重定向openvt的被調用者stderr?

我嘗試使用功能:

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

它不工作,opentty立即返回控制產卵什麼。

我試圖exec 2>>"$HOME"/logfile

我試圖啓動一個單獨的腳本,與該功能。該腳本無法通過openvt運行,但如果使用相同參數手動啓動腳本,則運行OK。

我錯過了什麼?

回答

1

一個可能的答案可能是一個封裝外殼腳本,其內容將負責產生守護進程,並將stderr重定向到您選擇的日誌文件。

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

[[email protected] ~]$ sudo openvt -c7 -s -w /home/anew/test.sh 
[[email protected] ~]$ cat /tmp/openvt-example 
Testing openvt 
[[email protected] ~]$ 
+0

好的,我會在週四檢查一下,當我回到那個系統時,我必須建立。我試過這個,一定是搞砸了。 謝謝! – gluk47 2013-02-11 18:42:40

+0

謝謝。我忘記了'chmod + x'我的腳本。 – gluk47 2013-02-14 13:26:46