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

使用 screen 管理你的远程会话

http://www.oklinux.cn  2007-08-02     会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn
你是不是经常需要远程登录到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字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·用putty在Windows下远程连接Linux出现
·Ubuntu的局域网安装方法
·四步轻松搞定Ubuntu Linux下WPA无线上
·Linux系统日志下vsftpd的配制
·Linux系统下DNS服务器的架设
·Linux系统下LVM扩充方法
·Ubuntu 8.04 LTS (Hardy Heron)更新源
·Firefox 3.0 Beta 4 推出
·VMware下让Linux系统与真实主机共享上
·Linux系统下服务器的硬件检查和文件传
·在虚拟机Redhat Linux下安装Samba服务
·Linux操作系统下PPPOE拨号共享上网方法
  阅读排行
·防火墙也能DIY----免费的专业级防火墙M
·用Xmanager远程管理LINUX,AIX等UNIX系
·linux下的rsync配置和使用教程
·LVS集群学习笔记(NAT\DR\IP tunnel)
·Ubuntu 8.04 LTS (Hardy Heron)更新源
·如何解决Xmanager不能登陆Linux系统问
·RHEL5实现高可用HA集群+GFS+Enterprise
·Suse Linux下的samba设置用户说明
·Linux 硬盘克隆备份详细图解
·用VNC实现远程桌面共享的方法
·xManager连接Linux的配置方法
·linux下文件服务Vsftp详细介绍
· Linux下Tomcat配置技巧详解分析
·Linux下使用Openssh工具远程管理Solari
·Linux操作系统下SVN服务器的搭建详解
网摘收藏: