首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>网络管理>网络应用>正文

使用 screen 管理你的远程会话

http://www.oklinux.cn  2007-08-03  来源:    会员收藏  游客收藏  【 】 
你是不是经常需要远程登录到Linux服务器?你是不是经常为一些长时间运行的任务头疼?还在用 nohup 吗?那么来看看 screen 吧,它会给你一个惊喜!

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。

 

让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。

在Linux/Unix中,有这样几个概念:

  • 进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。
  • 会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID。
  • 会话期可以有一个单独的控制终端(controlling terminal)。与控制终端连接的会话期首进程叫做控制进程(controlling process)。当前与终端交互的进程称为前台进程组。其余进程组称为后台进程组。

根据POSIX.1定义:

  • 挂断信号(SIGHUP)默认的动作是终止程序。
  • 当终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)。
  • 如果会话期首进程终止,则该信号发送到该会话期前台进程组。
  • 一个进程退出导致一个孤儿进程组中产生时,如果任意一个孤儿进程组进程处于STOP状态,发送SIGHUP和SIGCONT信号到该进程组中所有进程。

因此当网络断开或终端窗口关闭后,控制进程收到SIGHUP信号退出,会导致该会话期内其他进程退出。

我们来看一个例子。打开两个SSH终端窗口,在其中一个运行top命令。

[root@tivf09 root]# top

在另一个终端窗口,找到top的进程ID为5180,其父进程ID为5128,即登录shell。

[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

使用pstree命令可以更清楚地看到这个关系:

[root@tivf09 root]# pstree -H 5180|grep top
|-sshd-+-sshd---bash---top
            

使用ps-xj命令可以看到,登录shell(PID 5128)和top在同一个会话期,shell为会话期首进程,所在进程组PGID为5128,top所在进程组PGID为5180,为前台进程组。

[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
共7页: 上一页 1 [2] [3] [4] [5] [6] [7] 下一页

上一篇:Linux 技巧: Bash 参数和参数扩展   下一篇:Linux启动时间的极限优化方案


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux下的动态DNS服务配置方法详解
·在Linux下配置多线路ADSL的方法
·Linux安全攻略 SSH服务连接时常见问题解答
·Linux系统平台下配置Proftp服务的小技巧
·架设基于Linux(2.6内核)的服务器集群
·Linux系统上Iptables实现端口转发的过程
·Ubuntu Linux系统上安装IE浏览器的方法
·详细讲解配置Linux系统下的动态DNS服务
·Redhat Linux 9下最简单的WebMail实现方案
·配置 DNS 辅助域名服务器和子域名服务器
·路由器和防火墙软件coyote Linux配置指南
·Linux操作系统的各种命令行下载工具介绍
·Linux两种简单替代“花生壳”软件的办法
·实现Linux系统下的互联网过滤功能
·SSH实用技巧及常用命令使用说明
·Squid反向代理若干个后台的WEB实现说明
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·VMware下让Linux系统与真实主机共享上
·Linux系统下服务器的硬件检查和文件传
·在虚拟机Redhat Linux下安装Samba服务
·Linux操作系统下PPPOE拨号共享上网方法
·xManager连接Linux的配置方法
·Linux和Window系统远程桌面相互访问方
·Ubuntu下用手机连接蓝牙局域网pan/pand
·如何解决Xmanager不能登陆Linux系统问
·通过Amora用symbian手机控制Linux计算
·在Linux操作系统下单网卡实现双IP的设
·Linux下使用Openssh工具远程管理Solari
·VMware下Linux与真实主机共享上网的方
  阅读排行
·LVS集群学习笔记(NAT\DR\IP tunnel)
·防火墙也能DIY----免费的专业级防火墙M
·Linux系统邮件服务器常见错误报告列表
·linux下文件服务Vsftp详细介绍
· 快速架设apache/vsftpd/samba/sendmai
· Linux下Tomcat配置技巧详解分析
·如何利用集群技术实现Web服务器的负载
·Suse Linux下的samba设置用户说明
·Linux操作系统下SVN服务器的搭建详解
·RHEL5实现高可用HA集群+GFS+Enterprise
· Snort 用户手册
·Linux操作系统下的集群工作原理及实战
·用Xmanager远程管理LINUX,AIX等UNIX系
·路由器和防火墙软件coyote Linux配置指
·在VMware的虚拟机平台上如何进行网络设
网摘收藏: