2013-03-14 72 views
0

我有一個程序會運行很長時間,這個程序編輯並運行在遠程服務器上。我使用 在辦公室的計算機遠程連接服務器並運行它。進度顯示在我辦公室的電腦電腦屏幕上...如何共享正在運行的進程的屏幕輸出?

我想看看我家的輸出,怎樣捕捉辦公室電腦屏幕上的輸出,看看結果如何家?

我想將輸出寫入文件,但我需要關閉文件。所以我應該打開文件然後寫輸出,關閉..再次打開?

感謝

我不知道正確的標籤應該使用,但程序是用Perl編寫.....

回答

2

可以tee

your_program.pl | tee logfile.txt 

,看到了最新的結果logfile.txt在家

tail -f logfile.txt 
+0

請注意,您應該捕獲stderr以及stdout – 2013-03-14 10:39:23

+0

準確無誤。這可以通過'your_program.pl |&tee logfile.txt'完成。 – Alec 2013-03-14 14:56:10

2

爲什麼不直接重定向到一個日誌文件,並tail它(或負載它在編輯器等)?

$ myprog.pl >/tmp/logfile 2>&1 

以上的重定向輸出到一個日誌文件(/tmp/logfile - 你不妨選擇一個更好的位置,因爲/tmp是暫時的,可重新啓動過程中丟棄)和重定向標準輸出/標準錯誤輸出到同一個地方。請注意,這會捕獲程序的輸出,並且不需要修改腳本。

另一種方法是內screen

也許,最有用的功能之一運行您的程序,你可以重新連接到 您的會話登錄後出來,轉移到另一臺計算機,或得到 斷開連接,並繼續工作,好像什麼也沒有發生。你所有的 編輯會話,shell窗口等將在那裏,就像你離開 他們一樣。

1

就個人而言,我用screen對於這樣的事情。

  • 連接到服務器
  • 輸入命令screen。它顯示一個很好的信息,說明screen的版本,並且它在GPL下。
  • 運行實際的命令。
  • 在任何時候,點擊ctrl-ADscreen會話斷開連接。您將會看到一條沿着[detached from pid.tty.server]的消息。通常從服務器註銷。
  • 再次連接到服務器並輸入命令screen -x重新連接到您的會話。