screen简要说明

  1. screen 开启一个新的会话。
  2. 保持本地和服务器断开后,程序继续在服务器上运行,并且运行结束后,输出最后的结果。功能结果相当于 nohup command &,但是功能远比nohup强大

安装

# centos
yum install -y screen

# ubuntu
apt-get install -y screen

命令

# (宿主session)创建并进入一个名字叫做session_name的会话,可以在里面执行你想要执行的程序。
screen -S  session_name

# (派生session)Ctrl+A+D退出本次会话,让会话Detached,这样就能保证你的任务在后台一直运行,也不会随着终端的关闭任务就停止运行。
# (派生session)Ctrl+D退出并删除本次会话。

# (宿主session)查看当前所有的会话。
screen -ls
screen -list

# (宿主session)Detache某个session,session内运行的 process (无论是前台/后台)都在继续执行,即使宿主 logout 也不影响
screen -d session_name

# (宿主session)Attache某个session
screen -r session_name/session_id

# (宿主session)强制Detache原来的session,即踢掉前一用户,并重新Attach该session
screen -d -r session_name/session_id

# (宿主session)删除会话
screen -S session_name/session_id -X quit

# (派生session)Ctrl+A+X   锁住当前的shell window,需密码解锁

# (派生session)exit退出session

2、参数说明
-A  将所有的视窗都调整为目前终端机的大小。
-d <作业名称>  将指定的screen作业离线。
-h <行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s  指定建立新视窗时,所要执行的shell。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

4、在每个screen session 下,命令都以 ctrl+a、ctrl-a,常用的几个操作如下:

ctrl-a z # 把当前session放到后台执行,用 shell 的 fg 命令则可回去。

Q.E.D.


行走在天地间自由的灵魂