zoukankan      html  css  js  c++  java
  • screen常用命令

    1. 背景

    由于经常使用ssh登录实验室的服务器训练神经网络, 而一些复杂的神经网络模型需要长时间训练,在此期间,如果出现网络等原因出现链接中断的话,服务器的进程也会被杀死,之前的一切半途而废。利用screen可以很好地解决这一问题。

    2. 安装

    CentOS系统可以执行:yum install screen 

    Debian/Ubuntu系统执行:apt-get install screen 

    3. 使用

    screen -S [NAME]

    例如:

    screen -S gan-pytorch

    随后进入screen窗口gan-pytorch, 在这个窗口里执行的程序都将是screen里的程序。

    1. 挂起:Ctrl+a+d(先按住Ctrl和a,在按d)

    挂起即暂时离开screen,也就是说,之后即便你的电脑与服务器中断链接也不影响进程的运行。

    那么我们怎样恢复screen呢?

    2. 恢复:screen -r [ID]

    ID指的是进程的ID,每个进程都有唯一的ID, 查看ID的方法如下:

    3. 查看:screen -ls

    图中的27064、26962就是进程的ID

    4. 杀死:screen -X -S [ID] quit

    5. 批量杀死:

    如果你的系统里有多个session同时在运行,我们也可以通过组合命令,一次全部退出

    screen -ls | grep -i detached | cut -d. -f1 | tr -d [:blank:]| xargs kill
    
    screen -ls | grep Detached | cut -d. -f1 | awk ‘{print $1}’ | xargs kill

    如果您的pid都是五位数的话

    screen -ls | grep -o "[0-9]{5}" | xargs kill

    这两行命令的意思都差不多,通过管道,找到每个session的pid,然后作为 kill的参数,直接杀掉该进程

    screen -ls : 列出所有的screen session

    grep Detached : 过滤出Detached的session

    cut -d. -f1 :用.分割,取第一部分,也就是 pid

    awk和tr都是去掉前面的空白符的

    xargs :就是把每一行作为 kill 的参数执行

    4. 不保存文件,直接在screen翻页

    [Ctrl] + [A],再按[ESC],进入复制模式,默认翻页快捷键是[Ctrl]+[F],[Ctrl]+[B].

    退出复制模式:按[ESC].

    5. 使用screen恢复会话时出现There is no screen to be resumed matching错误解决办法

    有时在恢复 screen 时会出现 There is no screen to be resumed matching ****,遇到这种情况咋办呢?输入命令

    screen -d ****

    然后再使用恢复命令恢复就 ok 了。

    6. 更新......

    此文也许会不定期更新,如果需要用的新的screen命令的话......

  • 相关阅读:
    myBatis之事务管理
    关于Spring事务回滚的问题
    mysql中的多行查询结果合并成一个
    mybatis传递参数到mapping.xml
    EasyUI 中 DataGrid 控件 列 如何绑定对象中的属性
    写给java开发的运维笔记
    SpringMVC学习系列(11) 之 表单标签
    eclipse 安装svn插件
    linux(centos)搭建SVN服务器
    JavaServer Faces 2.0 can not be installed解决方案
  • 原文地址:https://www.cnblogs.com/congyucn/p/7738026.html
Copyright © 2011-2022 走看看