linux技巧之使用screen管理你的远程会话

  linux技巧-使用screen管理你的远程会话

  当我们用ssh或是telent远程登录到linux服务器上,运行一些长时间的任务,必须等待任务完成才能离开该界面。在此期间不能关闭窗口或者断开连接。否则这个任务的进程就会别杀掉,一切半途而废,需要重新执行该任务。

  如何解决这个问题?

  首先来理解几个概念:

  进程组:一个或多个进程的集合,每个进程组有唯一一个进程组ID,即进程组长进程的ID

  会话期:一个或多个进程组的集合,有唯一一个会话期首进程,会话期ID为首进程的ID

  会话期可以有一个单独的控制终端,与控制终端连接的会话期首进程叫控制进程,当前与终端交互的进程为前台进程。

  挂断信号默认的动作为终止程序

  当终端借口检测到网络连接断开,将挂断信号发送给控制进程

  如果会话期首选进程终止,则该信号发送到该会话期前台进程组

  一个进程退出导致一个孤儿进程组中产生时,如果任意一个孤儿进程组处于stop状态,发送SIGHUP和SIGCONT信号到该进程组的所有进程。

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

  方法一:nohup

  #nohup command &

  方法二:screen

  creen 是一个可以在多个进程间多路复用一个物理终端的窗口管理器。

  使用方法:

  (1),[xuefeng@ku6]# screen

  screen将创建一个执行shell的全屏窗口,你可以执行任意shell,就像在ssh窗口一样。

  (2),[xuefeng@ku6]#screen vi abc

  screen创建一个执行vi abc的单独窗口会话,退出vi 将退出该窗口

  (3),还可以在已有screen会话窗口中创建新的窗口,在当前sceen窗口中键入C-a c,即Ctrl+a,再按下c键。重新控制各窗口中运行的程序。

  例如:在一个screen窗口中编辑vi /tmp/abc,之后需要作另外的事情,那么可以在screen窗口键入C-a d,screen会提示暂时中断会话。继续前一个会话,#screen -ls 查看会话编号。重新连接screen -r 编号。

:更多精彩教程请关注电 脑教程栏目,电脑办公群:189034526欢迎你的加入

(0)

相关推荐

  • SSH远程会话管理工具 screen使用教程

    deepvps在刚接触Linux时最怕的就是SSH远程登录Linux VPS编译安装程序时(比如安装lnmp)网络突然断开,或者其他情况导致不得不与远程SSH服务器链接断开,远程执行的命令也被迫停止, ...

  • CentOS 7系统远程会话管理工具screen怎么安装使用?

    可能大家会遇到这样的问题:使用 SSH 或者telent 远程登录到Linux 服务器,运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...

  • RedHat LINUX桌面切换和用户管理技巧

     Red Hat Linux(以下简称Red Hat)是Linux的桌面系统,在Red Hat中使用得最多的就是KDE和GNOME两个桌面环境,在默认情况下安装的是GNOME。如果你在安装系统时没有装 ...

  • linux vps管理之ssh远程连接软件工具篇

    linux vps管理之ssh远程连接软件工具篇

  • Linux 操作系统的用户和用户组管理

     Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...

  • DHCP服务介绍及Linux下DHCP服务的管理配置

    DHCP服务介绍及Linux下DHCP服务的管理配置

  • Linux系统中的screen命令基本使用教程

    作为linux服务器管理员,经常要使用ssh登陆到远程linux机器上做一些耗时的操作. 也许你遇到过使用telnet或SSH远程登录linux,运行一些程序.如果这些程序需要运行很长时间(几个小时) ...

  • Linux系统基本的内存管理知识讲解

    内存是Linux内核所管理的最重要的资源之一.内存管理系统是操作系统中最为重要的部分,因为系统的物理内存总是少于系统所需要的内存数量.虚拟内存就是为了克服这个矛盾而采用的策略.系统的虚拟内存通过在各个 ...

  • Linux系统中的进程管理工具SystemD介绍

    SystemD是Linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布.Lennart是redhat员工,但SystemD不是 ...