安装screen
#apt-get install screen
安装byobu
#apt-get install byobu
接下来主要讲screen Detached表示会话处于挂起状态,Attached表示有终端在连接会话,Dead状态为死掉状态 清理screen的Dead会话,可以查看到此会话的进程号,然后kill -9,之后再screen -wipe
[detached from 10054.pts-0.www] jpuyy@www:~$ kill -9 10054 jpuyy@www:~$ screen -ls There is a screen on: 10054.pts-0.www (2012年03月03日 21时09分03秒) (Dead ???) Remove dead screens with 'screen -wipe'. 1 Socket in /var/run/screen/S-jpuyy.
jpuyy@www:~$ screen -wipe There is a screen on: 10054.pts-0.www (2012年03月03日 21时09分04秒) (Removed) 1 socket wiped out. No Sockets found in /var/run/screen/S-jpuyy.
screen 新建screen并登陆到其中 screen -t win 创建一个以win作为默认窗口标题的screen并登陆到其中 screen -list 列出screen列表 screen -wipe 清理僵死的screen窗口 screen -r [pid] 连接到当前无用户在连接的对应pid的screen,pid可以通过screen -list获得 screen -x [pid] 连接到对应pid的screen,不论当前有无用户已连接其中 screen窗口内部常用命令: 先按CTRL+a,然后松开再按下面的键: c 创建新的screen窗口并切换到其中 K 杀死当前screen窗口 ” 列出当前screen窗口列表 ‘ 输入screen窗口号码或名称的提示符 0 选择0号窗口 … 9 选择9号窗口 A 设置当前screen窗口的标题 d 断开与当前scree终端的连接 DD 断开与当前screen终端的连接并注销 –added in 20121204 用无线连接时,正在使用screen,突然网断了,然后重新连到服务器上
root@ibm:~# screen -r There is a screen on: 24643.pts-0.ibm (11/27/2012 07:50:06 PM) (Attached) There is no screen to be resumed.
发现不能回到原来的screen,从网上查得使用如下命令,踢掉上次中断的用户,并接管screen:
screen -D -r <session-id>
如上面的例子就是 :
screen -D -r 24643
使用node js版的shadowsocks时,会自动挂掉,所以把它放到screen中,用crontab每45分钟重开启一下
*/45 * * * * /usr/bin/killall screen; /usr/bin/screen -dmS node /usr/local/bin/node /usr/local/shadowsocks-nodejs/server.js
参考文章: http://www.ibm.com/developerworks/cn/linux/l-cn-screen/
使用screen翻屏
Ctrl+A, Esc 进入 C/P 模式,然后用Page Up/Down 翻页 还能用?<string> 查找
使用screen的时候,通用配置文件在/etc/screenrc,可以新建~/.screenrc
从而使用定制化的screen配置。 add @2014-05-15 启动screen的时候,直接连接多个ssh,用tab区分
screen -dmS sshmulti -c sshmulti.conf
原理是将ssh的命令和名称写到sshmulti.conf,启动时指定配置文件,配置文件如下
escape ^Xx autodetach on # default: on crlf off # default: off hardcopy_append on # default: off startup_message off # default: on termcap xterm 'AF=\E[3%dm:AB=\E[4%dm' terminfo xterm 'AF=\E[3%p1%dm:AB=\E[4%p1%dm' vbell off # default: ??? defscrollback 1000 # default: 100 silencewait 15 # default: 30 caption always "%{wk}%?%-Lw%?%{bw}%n*%f %t%?(%u)%?%{wk}%?%+Lw%? %= %{= kw}%110`%109`%111`" hardstatus string '%99`%{= kw} %100`%112`%= %102`%101`%114`%115`%108`%113`%119`%117`%118`%116`%106`%104`%103`%105`%107`%Y-%m-%d %0c:%s' activity "activity in %n (%t) [%w:%s]~" bell "bell in %n (%t) [%w:%s]~" pow_detach_msg "BYE" vbell_msg " *beep* " screen -t server88 ssh 192.168.1.88 screen -t server99 ssh 192.168.1.99
参考:http://askubuntu.com/questions/49245/start-multiple-apps-running-in-shells-split-in-one-console
有时在 screen 里会要看很长的历史,则需要把 buffer 加大,要看的时候按 ctrl-a 再按 {,再按 u 上翻, d 下翻
对 session 重命名
screen -list There are screens on: 2580.pts-0.centos7-work (Detached) 2478.pts-0.centos7-work (Detached) 2 Sockets in /var/run/screen/S-vagrant. # 重命名 -S 当前名 -X sessionname 要修改的名字 screen -S 2580.pts-0.centos7-work -X sessionname backend-service
创建新的 tab
press Ctrl+A+c to create a new virtual console
切换
press Ctrl+A+n to switch to next tab press Ctrl+A+p to switch to previous tab
Leave a Reply