Linux指令Screen指令 – 避免執行中的程式因為關閉console而終止

Linux指令Screen Cheat sheet

有時候一個程序可能會運行很久或者是你想把某個程式一直運行,就會把程式開在某個console讓他一直跑,可是開在實體的console上如果沒有鎖定的話,會有安全上的問題(可以摸到這個電腦的人,就可以直接操作了),又或者是用SSH遠端連線的時候,一斷開連線程式就終止了,此時也許可以用nohup指令,或在程序執行的時候就使用背景執行,不過用nohup預設會把程式產出的訊息寫在nohup.out時間一久,檔案不斷增長也不是個辦法,另外一點這跟跟背景執行有一樣的缺點,就是如果想要直接回去原本的console變得不可行。

Linux的screen指令就是一個管理工作console的程式,在screen程式中一個console稱為一個window,我們可以利用screen開啟多個window。

以下是screen的常用指令:

在還沒進入screen的時候,輸入screen就會讓screen 開啟一個新的window,也就是一個新的console。

screen -list
screen -ls

列出目前所有的screen

screen -r [id]
重新連接某個id的screen,如果不設定id的話,會連接上一次detached的screen (id 可以用 screen -list看到)

screen -R
重新連接上一個screen,如果沒有上一個screen就建立新的

在screen中有下列的動作

要跳出、或登出screen

Ctrl+a d
Ctrl+a Ctrl+d

Detach screen 跳出screen,但screen仍在運行

Ctrl+a C
Clear清空screen上的資訊

Ctrl+a D D
Detach & Logout 跳出並登出screen,screen中運行的程式會被終止

其實在screen中可以開啟多個window
Ctrl+a w
列出目前的window

Ctrl+a c
Create 開啟新的 window

Ctrl+a n
Next 下一個 window

Ctrl+a p
Previous 前一個 window

Ctrl+a Ctrl+a
兩個window相互切換

Ctrl+a #
#是0?9的數字,切換到該編號的 window

完整操作請參考screen的man page:http://www.manpagez.com/man/1/screen/