A. Linux下運行jar包的幾種方式
1 阻塞式方式
java -jar xxx.jar
特點: 當前終端的會話窗口被阻塞, 可按CTRL + C中斷程序的運行, 或者直接關閉會話窗口 —— 此時jar程序將終止.
2 後台運行方式
# 通過"&"符號實現後台運行:
java -jar xxx.jar &
特點: 當前終端的會話窗口不會被阻塞, 但是如果關閉當前窗口, 程序將終止運行.
3 後台持續運行方式
# 通過"nohup"命令實現後台運行:
nohup java -jar xxx.jar &
nohup命令是不掛斷運行命令的意思.
特點: 當用戶退出或終端關閉時, 程序的運行不受影響.
說明: 用nohup命令運行任務時, 默認情況下這個任務的所有輸出都將被重定向到nohup.out文件中, 除非另外指定輸出文件. 指定輸出文件方式為:
# 將輸出重定向到xxx.log文件中:
nohup java -jar xxx.jar > xxx.log &
> 符號是重定向符, 實現: 把它之前命令的所有輸出信息重定向到後面的文件中, 而不是顯示到屏幕上.
B. Linux下使用nohup運行jar文件
在Linux環境下,運行jar文件可以通過多種方式實現後台執行,具體方式及其特點如下:
方式1:在ssh窗口中使用nohup命令運行jar文件,這種方式下,當前ssh窗口會被鎖定。若使用Ctrl+c打斷程序運行或關閉窗口,則程序退出。
方式2:使用符號"&"代表後台運行。這種方式下,當前ssh窗口不會被鎖定。當窗口關閉時,程序退出。
方式3:nohup命令的全稱為"no hang up",用於不掛斷運行命令。即使賬戶退出或終端關閉,程序仍然繼續運行。
使用nohup命令執行任務時,預設情況下,所有輸出會被重定向到nohup.out文件中。除非另有指定輸出位置。
方式4:在命令後使用">"符號,將輸出重定向到指定文件。例如,"command > out.log"表示將command的輸出內容輸出到out.log文件中,而不顯示在屏幕上。
後台運行的作業可通過"jobs"命令查看。該命令會列出所有後台執行的作業,並為每個作業分配一個編號。若需將某個作業調回前台控制,只需使用"fg + 編號"即可。
另外,若需要給文件賦予可執行許可權,可參考相關文檔。