HowTo:確保計算工作能持續不中斷
為解決直接以 SSH 方式連線操作容器,計算工作會因網路連線而中斷的問題,以下提供三種解決方法,確保您的計算工作能持續在背景進行。
Method 1. 使用 Jupyter Notebook 連線與執行
Step 1. 點入已建立的開發型容器
Step 2. 開啟 Jupyter Notebook 連線容器
Step 3. 點入 Terminal 以操作容器
Step 4. 下指令執行程式
信息
上方網址列會顯示 Terminal 的編號: terminals/1
後續查看將會使用到。
Step 5. 查看執行程式狀況
- 若關閉 Terminal,程式仍會在背景持續執行
- 欲查看程式運行狀況,在 Jupyter Notebook 點選 「Running」,下方點選欲檢視的 Terminal 編號
- 便可再次進入 Terminal 查看程式執行狀況
Method 2. 使用 Screen
Step 1. 安裝 Screen
- SSH 連線進入容器後,安裝 Screen
sudo apt-get install screen
信息
參見 使用 SSH 登入連線。
提示
若安裝出現 E: Unable to locate package screen
,請先執行以下更新指令,再安裝 screen。
sudo apt-get update
Step 2. 進入 Screen 環境
screen
- 成功進入後的畫面如下。
- 按下「Return」鍵,便可開始下指令。
Step 3. 在 Screen Shell 內執行程式
- 執行範例如下。
Step 4. 卸離 (detach) screen shell
- 在程式執行中,按下
ctrl + a + d
,便會出現以下卸離成功的訊息 (紅框內為 screen shell ID),程式便可在背景持續進行,SSH 斷線也不會受影響。
Step 5. 查看執行程式
- 欲再次進入該 screen shell,輸入以下指令,便可操作容器、查看程式狀態。
screen -r [A chunk of screen shell ID]
Method 3. 使用 Linux nohup 指令
Step 1. SSH 連線進入容器後,執行程式
- 輸入以下指令便可讓程式在背景執行。
nohup [/code_path] &
信息
參見 使用 SSH 登入連線。
- 範例如下,同時會顯示 job ID (紅框內容:job ID = 1),並說明程式的輸出檔將會呈現在「nohup.out」檔案裡
Step 2. 查看輸出內容
- 若要查看程式最新輸出內容,輸入以下指令。
tail nohup.out
- 輸出內容顯示如下。