2014年11月21日 星期五

CentOS 6.5 背景工作小幫手 screen

最近在幫一台 iscsi 建立 disk img,由於硬碟檔有 500G,在用 dd 建立的時候一直中斷

 

在建立第二次的時候才發現是 ssh bash 中斷了導致在 bash run 的工作都被中斷連接

 

原本以為將 dd 放到 background Running 就不會被中斷,後來在被指點下用 ps axf 看到原來所有的 jobs 都在 bash 底下在 run

 

所以 Logout 就通通切斷啦!!



 

 

 

好啦~當機器不在你身邊,又沒有這麼多時間可以放著跑的時候該怎辦!!,只好用 screen 這個命令來託管

 

setp.1 用 ps axf 可以看到工作的階層關係,ps axf 是透過 sshd → bash → sudo -s → bash ,所以只要 sshd 斷掉就通通都不見啦!!
  991 ?        Ss     3:24 /usr/sbin/sshd 
31254 ? Ss 0:00 \_ sshd: eric [priv]
31257 ? S 0:00 \_ sshd: eric@pts/0
31258 pts/0 Ss 0:00 \_ -bash
31277 pts/0 S 0:00 \_ sudo -s
31278 pts/0 S 0:00 \_ /bin/bash
31287 pts/0 R+ 0:00 \_ ps axf

 

 

setp.2 screen 必須用 yum 來安裝
shell# yum install screen

 

 

setp.2 舉例我要建立 iscsidisk,用 -S 的參數來建立一個 name 為 iscsidisk 的 screen

執行完你的頁面會整個被刷新,在檢視一次 ps axf 就可以看到新建的一個 screen 為 iscsidisk 的 bash
shell# screen -S iscsidisk 
shell# ps axf
31312 ? Ss 0:00 SCREEN -S iscsidisk
31313 pts/1 Ss 0:00 \_ /bin/bash
31335 pts/1 R+ 0:00 \_ ps axf

 

setp.3 在這個 screen 底下執行要進行的工作,等到要離開的時候按下 Ctrl + a + d 就可以使用暫離模式

畫面會 print [detached],表示你暫離囉

這時候在檢查 ps axf ,剛剛建立的 screen 還在繼續執行哦。
[detached] 
shell# ps axf
1147 tty1 Ss+ 0:00 /sbin/mingetty /dev/tty1
31312 ? Ss 0:00 SCREEN -S iscsidisk
31313 pts/2 Ss 0:00 \_ /bin/bash
31315 pts/2 R+ 0:00 \_ ps axf

 

 

setp.4 等到你有空要再回來查看工作進度的時候,可以執行 screen -r name 來回將 screen console 託管權拿回來
shell# screen -r iscsidisk

 

 

setp.5 要關閉 screen 只要 exit 來離開就好囉,離開 screen 會提示 [screen is terminating] 表示成功退出 !!

 

 

screen 也常被用來遠端同步顯示,演講者建立一個 screen console,而學員遠端到這台 server 用 screen -r name 畫面就會和演講者同步。

 

 

 

常用參數:

Ctrl + a + c  在當前的 screen 中再建立一個 screen

Ctrl + a + w 目前的 screen list

Ctrl + a + n 下一個 screen

Ctrl + a + p 上一個 screen

Ctrl + a + 0-9 在 screen 1 ~ 9 切換

Orignal From: CentOS 6.5 背景工作小幫手 screen

沒有留言:

張貼留言