---
title: 確保計算工作能持續不中斷
tags: HowTo, CCS, Interactive, TW
GA: UA-155999456-1
---
{%hackmd @docsharedstyle/default %}
# HowTo:確保計算工作能持續不中斷
- 為解決直接以 SSH 方式連線操作容器,計算工作會因網路連線而中斷的問題,以下提供三種解決方法,確保計算工作能持續在背景進行
## Method 1. 使用 Jupyter Notebook
### Step 1. 在 TWCC 點入已建立的開發型容器
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_584d42d265240bf0eccf13f5212dec3c.png)
### Step 2. 開啟 Jupyter Notebook 連線容器
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_3dd30b3a92dab74d84d47c418c0409ce.png)
### Step 3. 點入 Terminal 以操作容器
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_a027717a19eb85582f5f893ec2ed999c.png)
### Step 4. 下指令執行程式
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_92e9382801d6dd746faeffa8043ddb86.png)
:::info
:bulb: 上方網址列會顯示 Terminal 的編號: `terminals/1` 後續查看將會使用到
:::
### Step 5. 查看執行程式狀況
- 若關閉 Terminal,程式仍會在背景持續執行
- 欲查看程式運行狀況,在 Jupyter Notebook 點選 「Running」,下方點選欲檢視的 Terminal 編號
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_b4acc84b64bb17c41533b4718a74bcc2.png)
- 便可再次進入 Terminal 查看程式執行狀況
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_62ab66f669dfb35b75aaec84c0ee1993.png)
## Method 2. 使用 Screen
### Step 1. 安裝 Screen
- SSH 連線進入容器後,安裝 Screen
```bash=
sudo apt-get install screen
```
:::info
:book: 參見 [<ins>使用 SSH 登入連線</ins>](https://www.twcc.ai/doc?page=container#使用-SSH-登入連線)
:::
:::info
:warning:注意:若安裝出現 ` E: Unable to locate package screen`,請先執行以下更新指令,再安裝 screen
```bash=
sudo apt-get update
```
:::
### Step 2. 進入 Screen 環境
```bash=
screen
```
- 進入後的畫面,閱讀說明
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_47056d9911ee362ef05bc9e6ac33febc.png)
- 按「Return」鍵,便可開始下指令
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_e1b9bebfacbf19334f64d7f9c5b4cd7b.png)
### Step 3. 在 Screen Shell 內執行程式
- 執行範例如下
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_0017c6102df15b490d4492adf889470a.png)
### Step 4. 卸離 (detach) screen shell
- 在程式執行中,按下 `ctrl + a + d`,便會出現以下卸離成功的訊息 (紅框內為 screen shell ID),程式便可在背景持續進行,SSH 斷線也不會受影響
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_017ef5c98429becb339bd36d43cdc7d2.png)
### Step 5. 查看執行程式
- 欲再次進入該 screen shell,輸入以下指令,便可操作容器、查看程式狀態
```bash=
screen -r [A chunk of screen shell ID]
```
:::info
:book: [<ins>其他 Screen 相關指令</ins>](https://blog.gtwang.org/linux/screen-command-examples-to-manage-linux-terminals/)
:::
## Method 3. 使用 Linux nohup 指令
### Step 1. SSH 連線進入容器後,執行程式
- 輸入以下指令便可讓程式在背景執行
```bash=
nohup [/code_path] &
```
:::info
:book: 參見 [<ins>使用 SSH 登入連線</ins>](https://man.twcc.ai/s/SJlZnSOaN#%E4%BD%BF%E7%94%A8-SSH-%E7%99%BB%E5%85%A5%E9%80%A3%E7%B7%9A)
:::
- 範例如下,同時會顯示 job ID (紅框內容:job ID = 1),並說明程式的輸出檔將會呈現在「nohup.out」檔案裡
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_d220eceddf16a2cc6c0e29a2af8b569b.png)
### Step 2. 查看輸出內容
- 若要查看程式最新輸出內容,輸入以下指令
```bash=
tail nohup.out
```
- 輸出內容顯示如下
![](https://cos.twcc.ai/SYS-MANUAL/uploads/upload_a118f65cfb32d6b14fb291a322ca56b2.png)
:::info
:book: [<ins>其他 nohup 相關指令</ins>](https://blog.gtwang.org/linux/linux-nohup-command-tutorial/)
:::