簡體   English   中英

通過Putty連接到遠程主機(OS Solaris)並丟失連接時,如何捕獲Java應用程序輸出(System.out.println())?

[英]How to catch Java application output (System.out.println()) when connected to remote host (OS Solaris) via Putty and connection is lost?

如果通過遠程會話丟失並再次連接時通過Putty連接到遠程主機(OS Solaris)時如何捕獲Java應用程序輸出( System.out.println() )? 遠程主機上的Java應用程序是這樣啟動的:

java -jar /SomeApplication.jar和

現在輸出可見。 但是,如果退出遠程會話並再次連接-盡管仍在運行相同的Java應用程序,則看不到更多輸出-我可以通過發出以下命令來看到它:

ps -ef | grep Java

輸出為:

根5221 1 0 20:04:15? 1:20 java -jar SomeApplication.jar

該應用程序ID為5221,並且正在運行,但是其輸出在某處消失。

快速而整潔的建議是在screen會話中運行該應用程序(檢查Solaris軟件包)。

首先,啟動屏幕:

$ screen

然后像往常一樣screen啟動應用程序:

$ java -jar /SomeApplication.jar

而你被設置。 您不需要結尾& :可以分離(請參閱下文)並注銷; 屏幕會話將保持運行。 下次登錄時,只需發出:

$ screen -x

會話及其輸出將重新連接

快速參考:

  • 使用CTRL + a d (首先使用CTRL + a在一起,然后使用d )與會話分離 ,以便離開screen會話(在其中運行Java應用程序),返回Solaris Shell並執行其他操作-包括優雅地登出。

  • 使用CTRL + a ]進入“復印模式”,以便您可以上下滾動,並使用q退出復印模式。

還有許多其他有用的功能,只需閱讀快速介紹:)

在這些情況下,日志文件的播放效果更好。sysouts也是昂貴的操作。 或者,當您啟動Java程序時,將錯誤/輸出重定向到臨時文件。 因此,您以后可以查看它。

java -jar /SomeApplication.jar > wherever_you_want_output.log 2>&1 &

>將system.out.println重定向到文件,2>&1將system.err.println發送到同一文件(您也可以放2> error_file.log以獲取單獨的System.err.println()輸出。

從長遠來看,盡管您應該通過log4j或java日志記錄框架來使用日志記錄框架。

如果您想觀察輸出,然后隨着輸出的增加,可以執行tail -f whatever_you_want_output.log

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM