有時候模擬跑起來要很久很久,
如果程式沒結束就退出遠端,正在run的程式可能就會當掉,
因此藉機學到了Linux中強大的screen功能!
screen是linux上一個很好用的功能,可以在一個terminal下開啟多個視窗執行,又可以彼此切換,藉由每一個process的PID去modified,
簡單來說,又可以多分頁工作,又可以離線後繼續工作,如此好物,怎能不學!
screen的簡易指令:
screen #第一次執行會創立一個running SHELL的單一視窗 #(open a screen session for processing) ctrl+a+c #開啟下一個新的單一視窗並切換過去(change to new worker) ctrl+a+d #脫離(detach)目前的 screen ,並放到背景執行(jump out of screen), #離線繼續工作的強大指令,要在連上只需使用screen -r PID即可 screen -r PID #選擇一個screen session 進入該程序 screen -ls #查看所有screen sessions(show the screen working status) kill PID #kill process說明:
平常工作寫或跑到一半就可以把它detach掉,丟到後臺執行後會回到還沒進screen的狀態,此時process其實都還在執行,就算logout也不會停止。
要在連上執行中的process,只要在login後,用screen -ls查看process的PID,在用screen -r PID即可回復該程序!
程序結束後,也只要用kill PID就可以跟該程序說bye bye嚕!
補充:
screen -R #重新連接最近卸離的 screen 工作環境 screen -d PID #強制 detach,以便「接手」過來 screen -wipe #將廢棄的 screen 工作環境清除 exit #關閉視窗(若只剩一個視窗則為關閉screen, close the screen) top #linux中的動態程序觀察功能,查看遠端主機終有哪些程序在執行 #(leave top->press "q")補充2:
ctrl+a+n #Next == 切換到下個 window ctrl+a+p #Previous == 前一個 window ctrl+a ctrl+a #Other == 在兩個 window 間切換 ctrl+a+w #Windows == 列出已開啟的 windows 有那些 ctrl+a+0 #切換到第 0 個 window ctrl+a+1..9 #切換到第 1..9 個window ctrl+a+a #發出 C-a,在 emacs, ve, bash, tcsh 下可移到行首 ctrl+a+t #Time,顯示當前時間,和系統的 load ctrl+a+K(大寫) #kill window,強行關閉當前的 window ctrl+a+[ #進入 copy mode,在 copy mode 下可以回滾、搜索、複製就像用使用 vi 一樣 ctrl+b+Backward #PageUp ctrl+f+Forward #PageDown