zoukankan      html  css  js  c++  java
  • VPS Linux SSH 客户端断开后保持进程继续运行配置方法——screen

    前言

    Linux中,我们经常会做一些关于数据的操作(备份、传输、压缩等)或是要在后台持续的运行一些程序。由于,工作的数据量很大或者工作要持续很长的时间,我们就必须保证这个终端的启动,一旦终端关闭了,它所运行的进程也会关闭,我们所做的工作就可能前功尽弃。但是,即使我们不主动的关闭终端,终端有的时候也会应为一些原因(网络、锁屏等)而中断,导致我们的工作进度清零。

    有很多种方法,这里只介绍screen命令。

    screen命令的优点

    支持会话恢复

    当我们开启screen后,只要screen进程没有终止,其内部运行的会话都可以恢复。网络连接中断临时,用户也可以进入开启的screen中,对中断的会话的进行控制(恢复或删除)。
    通常的用法是在暂时离开的时候,让在screen中运行的会话保持正常运行并将Screen切换到后台。

    支持多窗口

    当使用screen时,可以开启多个窗口,让每个会话都独立运行到不同的窗口,并拥有各自的编号、名称等。用户可以通过这些编号及名称进入不同的窗口。

    会话共享

    Screen可以让一个或多个用户从不同终端登录一个会话,并共享会话。使用户登陆同一会话的用户看到同一会话内容。
    同时它可以提供窗口访问权限的设置,对窗口进行密码保护。

    screen的参数

    -4             仅将主机名解析到IPv4地址
    -6             仅将主机名解析到IPv6地址
    -A            将所有的视窗适应当前终端屏幕的大小
    -d            将指定的screen作业离线
    -h lines      指定视窗的缓冲区行数
    -m             即使目前已在作业中的screen作业,仍强制建立新的screen作业
    -r             恢复(Reattach)离线(detach)的screen作业
    -R            先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业
    -s shell      建立新视窗时(使用shell,而不是$SHELL
    -S             创建并指定screen作业的名称
    -U             指定screen使用UTF-8编码
    -v            显示版本信息
    -x            进入(Attach)之前离线的screen作业
    -ls或-list    显示目前所有的screen作业
    -wipe         检查目前所有的screen作业,并删除已经无法使用的screen作业

    screen最常用操作

    screen启动后,会创建第一个窗口,默认窗口screen 0 (从0开始)

    外观上看,就像是开了一个新的终端。

     新建一个作业

     指定名字是为了便于区分

    screen -S 作业名称

    如:screen -S test 创建一个名字为test的作业

     列出当前所有的作业

    screen -ls

     进入未离线(Attached)作业

    screen -x 作业序号或者名称

    screen -x 3985  #进入序号为3985的作业中
    或者
    screen -x test  #进入名称为test的作业中

     进入已离线(Detached)作业

    screen -r 作业序号或者名称

    screen -r 3985  #回到序号为3985的作业中
    或者
    screen -r test  #回到名称为test的作业中

    远程结束某个作业

    screen -d 作业名称

    screen -d test

    screen中的命令用法

    screen下使用ctrl+a进入命令模式

    这里只讲一下退出命令:

    退出screen的作业时,有两种方式:

    1. Crtl-a  +d     保存进程并退出作业(程序在screen中继续运行,screen -ls 可查看)
    2. Crtl-a + k 或exit    退出作业和进程(程序终止,screen -ls 不可查看)

     参考链接:https://www.tok9.com/archives/256/

  • 相关阅读:
    一个在线的C++帮助文档网站
    linux 学习笔记 (四)
    类的static成员函数和const成员函数
    Linux的inode、软链接、硬链接
    常用linux命令(三)
    多语言调用之 C++ 调用 Java JNI
    多语言调用之 Java调用C/C++
    NHibernate 操作原生SQL以及查询DataTable,DataSet
    DataGridView控件用法合集
    Java AOP实战 寻找SQL的引用路径
  • 原文地址:https://www.cnblogs.com/lfri/p/10731441.html
Copyright © 2011-2022 走看看