无忧启动论坛

标题: screen用法 [打印本页]

作者: 2010hjfeng1988    时间: 2011-3-19 01:37
标题: screen用法
screen 是一个特殊的模拟终端软件,利用它能在一个终端窗口里模拟出多个终端
并且能分割窗口、类似 VI 的方式搜索和拷贝屏幕输出,最重要的是利用
screen,可以让任务后台执行,退出系统,下次登录恢复后跟以前状态一样

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


创建一个screen:
[root@localhost ~]# screen                                       回车后会跳到新的窗口当中
[root@localhost ~]# screen -ls                                   查看所有screen进程
There are screens on:
        1000.pts-5.localhost    (Attached)
        2000.tty1.localhost     (Detached)
        3000.hehe       (Dead ???)
        4000.pts-4.localhost    (Detached)
        5000.haha       (Detached)
Remove dead screens with 'screen -wipe'.
5 Sockets in /var/run/screen/S-root.

#1000.pts-5.localhost    (Attached)这个进程就是刚才用screen创建的,1000是系统默认分配的PID进程号
#2000.tty1.localhost     (Detached)tty.localhost是用本机创建的,pts-5.locahost是我用远程工具(putty)连上去的
#3000.hehe       (Detached)这个是我另外建的,命令用法是[root@localhost ~]# screen -S hehe

screen状态有三种:
Attached           目前正在工作当中,当使用Ctrl+a+d就会退出工作状态,状态就会变成Detached,但是还是后台工作的
Datached           在后台工作当中,也可以在Attached状态时使用命令[root@localhost ~]# screen -r 1000让其变成Datached状态
Dead ???            死亡状态,这个需要用的命令是[root@localhost ~]# kill -9 3000,如果已经是Dead状态,用这命令是会报错的,只能去杀前两种状态的screen进程
Removed           当使用[root@localhost ~]#screen -wipe删掉某个screen进程的时候显示

进入已存在screen
[root@localhost ~]# screen -r PID进入Datached状态的screen
[root@localhost ~]# screen -x PID进入Attached状态的screen

改变screen状态
[root@localhost ~]# screen -d PID将Attached状态的screen变成Datached

退出screen:
Attached状态下[root@localhost ~]# exit
Datached状态下将其变成Attached然后再用exit退出。[root@localhost ~]# screen -r 2000
Detached状态还有一种是卡住的,在Attached下使用某些命令如:[root@localhost ~]#rz该命令是从本地上传文件到linux上,(提示:最好在远程工具中使用该命令,因为此时会卡住,...可能到时你只能通过重启机器才能解决),如果利用远程工具的话,这时你就可关掉它,重登再把该卡住的进程利用[root@localhost ~]# kill -9 3000来杀死它
Dead ???状态的screen进程就很好解决了[root@localhost ~]#screen -wipe杀掉所有Dead ???进程,如果加进程号,只删掉单个。

很多没接触过screen命令的人可能还是知道这命令到底有什么用,目前我用到该命令是因为邮件服务器上要迁移,这服务器都是远程连过去的,这时你得先打包吧,如果打包到一半的时候网络断了怎么办呢,包大的话,有时可能打包都需要一天的时间。再加上传输,速度慢的话,服务器可能传上好几天。这边的断掉是我跟服务器的网络断掉,如果服务器跟服务器的网络断掉,那也只能自认倒霉了。呵呵!
工作了就是忙,好久没上无忧了。
作者: my9823    时间: 2011-3-19 07:14
是不是和虚拟机的系统快照意思差不多吧?
作者: 2010hjfeng1988    时间: 2011-3-19 11:36
标题: 回复 #2 my9823 的帖子
不是,screen是让你所做的操作在linux后台运行,还不理解的话,只能自己去linux试一试了。
系统快照应该说跟win7的睡眠差不多。
作者: my9823    时间: 2011-3-19 13:44
不是有bg 、fg和jobs命令么?
作者: my9823    时间: 2011-3-19 13:47
还有在命令后边加&不是也能在后台运行么?
作者: Halloween    时间: 2011-3-19 19:08
标题: 回复 #5 my9823 的帖子
有些蛋疼的程序, 没有console不能运行. 也就是, 他们本身无法后台运行.




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3