您可以用nohup命令* nix中運行
nohup java -jar myjar.jar 2>&1 >> logfile.log &
這將運行jar文件,輸出[stderr和標準輸出]引導到logfile.log
。需要&
以便它在後臺運行,釋放命令行/ shell/
!!編輯!
值得一提的是,我發現了,一旦它開始停止作業的最簡單的方法是:
ps -ef | grep java
返回ec2-user 19082 19056 98 18:12 pts/0 00:00:11 java -jar myjar.jar
然後kill 19082
。
請注意,您可以tail -f logfile.log
或其他衍生產品[less,cat,head]來查看罐子的輸出。
回答到問題/評論
嗨。你可以使用System.out.println()
,那會在logfile.log中結束。指示的命令是2&>1
,意思是「將流2重定向到流1」。在unix中說這意味着將stderr重定向到標準輸出。然後我們指定>> logfile.log
這意味着「將輸出附加到logfile.log」。當System.out.println()寫入標準輸出時,它會以logfile.log結尾。
但是,如果您的應用程序設置爲使用Log4j/commons-logging,那麼使用LOG.info("statement");
將最終在配置的「log4j.properties」日誌文件中。使用這種配置,最終將在logfile.log
中出現的唯一語句將是系統生成的(錯誤,linux內部系統消息)或任何明確寫入標準輸出(即System.out.println()
)語句的語句;
是的,你可以上傳並運行它。這已被[討論] [1] [前] [2]: [1]:http://stackoverflow.com/questions/16564305/ec2-run-jar-on-running-ec2-實例 [2]:http://stackoverflow.com/questions/20669862/problems-in-running-jar-on-amazon-ec2 – crnlx
@crnlx:不,它不是。你必須保持控制檯在你的機器上打開 –
你可以cron它,不是嗎? – crnlx