如何從命令列運行程式並在運行時仍然能夠在命令列上工作?

如何從命令列運行程式並在運行時仍然能夠在命令列上工作?

假設我想運行一個 Java 程序,所以我會輸入

java myProgram

然後假設它在螢幕上列印一些輸出,但需要幾個小時才能完成運行。如果我想在運行時繼續在同一個終端上工作,我應該使用什麼命令?我嘗試了,最後似乎沒有成功。

答案1

&只需在命令後面添加 即可。這將使命令在後台運行。

請注意,您仍然會得到它的輸出,因此您可能希望將輸出重新導向到/dev/null某個設定檔。

例如,為了重定向 stdout 和 stderr:

java myProgram > /dev/null 2>&1 &

答案2

由於程式運行時間較長,您可能需要考慮使用螢幕。您可以執行該程序,然後使用 Control-a Control-c 啟動另一個命令提示字元。您可以根據需要多次執行此操作,並同時處理幾件事。此外,即使您登出然後稍後再登入(只是不要關閉),您也可以重新連接到螢幕並查看其運行情況。執行“man screen”以獲取資訊。

還有 tmux,這是一個類似的工具,但您需要安裝它。

答案3

我認為螢幕將最好地回答您的特定問題,但聽起來您的工作流程將從使用標籤中受益最多。

若要在終端機中開啟新選項卡,請按選擇的終端Ctrl+T,您可以透過按在選項卡之間切換Ctrl+上頁或者Ctrl+PgDown在它們之間切換。

這很快就會變得直觀,並且最終變得高效,因為您可以在選項卡之間快速切換以檢查長時間運行的程序,或者在您忙於處理長時間任務時快速生成更多選項卡。

相關內容