有人问起了如果下班了,关闭ssh以后,还继续运行自己的程序怎么办,以前用nohup可以解决,但是对方要求,第二天来的时候,一开ssh,还能在屏幕 上显示执行的程序变化中的数据,估计nohup是不行了,研究了一下,一个叫做screen的命令能达到这个目的,安装也很方便。
[root@tivf09 root]# top
|
[root@tivf09 root]# ps -ef|grep top
root 5180 5128 0 01:03 pts/0 00:00:02 top
root 5857 3672 0 01:12 pts/2 00:00:00 grep top
|
[root@tivf09 root]# pstree -H 5180|grep top
|-
sshd-+-sshd---bash---top
|
[root@tivf09 root]# ps -xj|grep 5128
5126 5128 5128 5128 pts/0 5180 S 0 0:00 -bash
5128 5180 5180 5128 pts/0 5180 S 0 0:50 top
3672 18095 18094 3672 pts/2 18094 S 0 0:00 grep 5128
|
[root@tivf09 root]# ps -ef|grep 5128
root 18699 3672 0 04:35 pts/2 00:00:00 grep 5128
|
C-a ?
|
显示所有键绑定信息
|
C-a w
|
显示所有窗口列表
|
C-a C-a
|
切换到之前显示的窗口
|
C-a c
|
创建一个新的运行shell的窗口并切换到该窗口
|
C-a n
|
切换到下一个窗口
|
C-a p
|
切换到前一个窗口(与C-a n相对)
|
C-a 0..9
|
切换到窗口0..9
|
C-a a
|
发送 C-a到当前窗口
|
C-a d
|
暂时断开screen会话
|
C-a k
|
杀掉当前窗口
|
C-a [
|
进入拷贝/回滚模式
|
-c file
|
使用配置文件file,而不使用默认的$HOME/.screenrc
|
-d|-D [pid.tty.host]
|
不开启新的screen会话,而是断开其他正在运行的screen会话
|
-h num
|
指定历史回滚缓冲区大小为num行
|
-list|-ls
|
列出现有screen会话,格式为pid.tty.host
|
-d -m
|
启动一个开始就处于断开模式的会话
|
-r sessionowner/ [pid.tty.host]
|
重新连接一个断开的会话。多用户模式下连接到其他用户screen会话需要指定sessionowner,需要setuid-root权限
|
-S sessionname
|
创建screen会话时为会话指定一个名字
|
-v
|
显示screen版本信息
|
-wipe [match]
|
同-list,但删掉那些无法连接的会话
|