zoukankan      html  css  js  c++  java
  • screen 使用总结

    screen

    在使用ssh方式连接远程服务器时,若在远端长时间执行某个任务,期间如果发生远程中断,本地机器关机等情况,远程服务也不得不终止,这样会带来一些麻烦.
    screen 该软件主要时帮助解决该问题.

    screen 安装

    在manjaro中使用sudo pacman -S screen 进行安装,通常需要在服务器端安装.

    screen 使用

    screen 中有会话的概念,通常screen -S name 的方式建立会话,name为会话的名字.
    在服务器端使用screen -S test 会建立一个名为 test 的会话,在该会话下新建的执行程序,都不会因为ssh中断而停止.
    例如在服务器段执行一下命令,假设 run_two_days.py 是一个需要跑两天的程序.

    screen -S test
    python run_two_days.py
    

    即便在本地关闭ssh客户端, 服务器依旧会运行 python run_two_days.py.在服务器运行该程序的两天期间任意时间点,使用ssh连接服务器,并
    使用 screen -r test 回复会话来检查程序的运行情况.

    screen 常用命令

    1. 暂时离开会话,并保证会话中的程序依旧运行
      在欲退出的会话中使用 Ctrl + a d(按Ctrl, 并依次按a, d),可以暂时离开会话.
      推荐所有使用screen会话运行的程序都使用该方式退出,然后关闭与服务器的ssh连接
    2. 查看当前存在的 screen 会话 screen -ls
      如下所示服务器当前存在两个会话,会话名称前面为该进程的pid.
    [lf@lf-pc ~]$ screen -ls
    There are screens on:
            302072.test     (Detached)
            302045.train    (Detached)
    2 Sockets in /run/screens/S-lf.
    

    screen 通常使用流程

    1. 新建服务器任务
      1. 使用ssh客户端连接远程服务器
      2. screen -S task 新建任务会话
      3. python task.py 运行任务程序
      4. Ctrl a d 离开会话
      5. 进行服务器其他操作或断开服务器ssh连接
    2. 查看程序运行情况
      1. 使用ssh客户端连接远程服务器
      2. screen -r task恢复任务会话
      3. 查看任务执行情况
      4. Ctrl a d 离开会话
    3. 终止程序
      1. 使用ssh客户端连接远程服务器
      2. screen -r task恢复任务会话
      3. 查看任务执行情况
      4. exit 终止会话

    screen 常见问题

    1. 若不小心新建了相同名称的会话,不知道该如何操作制定会话.
      可以使用screen -ls 先查看会话的信心,然后使用会话前面的pid来操作执行会话.
      如下图,可使用 302154, 302045来操作对应的train,例如恢复会话 screen -r 302154
    [lf@lf-pc ~]$ screen -li
    There are screens on:
            302154.train    (Detached)
            302072.test     (Detached)
            302045.train    (Detached)
    3 Sockets in /run/screens/S-lf.
    

    参考

    1. https://www.runoob.com/linux/linux-comm-screen.html
    如有不当,欢迎指正 :)
  • 相关阅读:
    URAL 2034 : Caravans (二分最短路)
    Qt程序的字符编码方式
    Qt程序国际化
    Qt5 + msvc2015编译器 环境配置 (不安装VS)
    error: undefined reference to `Dialog::on_pushButton_clicked()'在程序代码的后台程序代码出现问题
    Qt的inherits()函数判断qt控件是否为某个类实例
    WPS使用书签跳转到指定的文档位置
    Qt error ------ 出现Error
    环境名词
    source insight 联想出Qt库函数
  • 原文地址:https://www.cnblogs.com/lif323/p/14727568.html
Copyright © 2011-2022 走看看