应用场景:

远程登陆Linux服务器运行模型训练代码,如果关闭本地终端则服务器代码中断运行!目标操作:在本地终端运行服务器代码,当关闭终端时代码能够继续在服务器上运行,且再次打开终端连接服务器时能找回正在运行/运行完成的代码环境。

解决方案:使用screen

1. 安装screen

pip3 install screen

或者:

sudo apt-get install screen

2. 创建screen会话 (会话名:test)

screen -S test

3. 在screen会话(会话名:test)中运行代码

python train.py

说明:

这里创建并进入名叫 “test” 的screen会话,

可使用 screen -ls 查看当前存在的screen会话

screen -ls
--16133.test(Attached)

“Attached” 表示这个screen会话是活动的。

其中 “16133.test” 的16133表示screen会话的进程号,test表示screen会话名。

4. 剥离screen会话

Ctrl+A+D (同时按键盘上的 Ctrl、A、D 三个键)

说明:此时可以关闭终端,让程序在服务器上继续运行了

5. 重新接入screen会话

(1) 查看当前存在的screen会话

screen -ls
--16133.test(Detached)

(2) 接入会话

screen -x 16133

或者

screen -r test

(3) 说明:

两种方法都可以,后面参数分别为进程号和会话名

6. 关闭所有screen会话

如果开了很多个screen同时工作,一个一个关闭比较麻烦,使用命令一次关掉要方便些

(1) 查看有多少个screen

screen -ls |awk '/Socket/'|awk '{print $1}'

(2) 如果有20个screen,关闭所有screen的命令为

screen -ls|awk 'NR>=2&&NR<=20{print $1}'|awk '{print "screen -S "$1" -X quit"}'|sh

原文链接:https://mp.weixin.qq.com/s/QvsGF2C6Vdg2n_o2omxinA

Ubuntu使程序脱离终端运行的更多相关文章

  1. java进程脱离终端运行

    关于 java 进程脱离终端放入后台运行的问题,首先想到是使用nohup命令: 研究了一下tomcat启动脚本.jenkins.war启动方式以及其他linux命令,结论是在目前的linux系统上不使 ...

  2. linux nohup命令使程序在后台运行的方法

    在linux操作系统中从后台一直运行某个程序的方法,就是使用nohup命令了. Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行. 比如要运行 ...

  3. iOS开发之使程序在后台运行

    方法一(此方法不太可靠): 开启程序后台运行: [application beginBackgroundTaskWithExpirationHandler:^{ //后台运行过期后会调用此block内 ...

  4. Linux基础知识之—— nohup命令使程序在后台运行的方法

    在linux操作系统中从后台一直运行某个程序的方法,就是使用nohup命令了. 参照网址:http://www.jb51.net/LINUXjishu/189964.html

  5. Linux下使Shell 命令脱离终端在后台运行

    --Linux下使Shell 命令脱离终端在后台运行------------------------------------2014/02/14你是否遇到过这样的情况:从终端软件登录远程的Linux主 ...

  6. 使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)

    你是否遇到过这样的情况:从终端软件登录远程的Linux主机,将一堆很大的文件压缩为一个.tar.gz文件,连续压缩了半个小时还没有完成,这时,突然你断网了,你登录不上远程Linux主机了,那么前面的半 ...

  7. (转)Linux下使Shell 命令脱离终端在后台运行

    转自: http://www.linuxidc.com/Linux/2011-05/35723.htm 方法如下: (1)输入命令: nohup 你的shell命令 & (2)回车,使终端回到 ...

  8. 【转】使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)

    一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...

  9. Ubuntu中如何使得程序在后台运行

    Ubuntu中如何使得程序在后台运行 一.前言 在Ubuntu中有的程序启动需要执行改程序./bin目录下的文件,并且启动之后这个shell就不能使用和关闭了,非常的麻烦,因此就有了相应的命令来解决这 ...

  10. 使程序在Linux下后台运行

    一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...

随机推荐

  1. vue中如何使用JSX?

    JSX是什么? JSX 是一种 Javascript 的语法扩展,JSX = Javascript + XML,即在 Javascript 里面写 XML,因为 JSX 的这个特性,所以他即具备了 J ...

  2. 【笔记】Tapable源码解析图以及webpack怎样实现一个插件plugin

    Tapable源码解析图,如图所示: 一个webpack plugin由一下几个步骤组成: 一个JavaScript类函数. 在函数原型 (prototype)中定义一个注入compiler对象的ap ...

  3. 2024-09-21:用go语言,给定一个字符串 s,字符串中的每个字符要么是小写字母,要么是问号‘?‘。对于一个仅包含小写字母的字符串t,我们定义cost(i)为在t的前i个字符中与t[i]相同的字

    2024-09-21:用go语言,给定一个字符串 s,字符串中的每个字符要么是小写字母,要么是问号'?'.对于一个仅包含小写字母的字符串t,我们定义cost(i)为在t的前i个字符中与t[i]相同的字 ...

  4. C#|.net core 基础 - 深拷贝的五大类N种实现方式

    在实际应用中经常会有这样的需求:获取一个与原对象数据相同但是独立于原对象的精准副本,简单来说就是克隆一份,拷贝一份,复制一份和原对象一样的对象,但是两者各种修改不能互相影响.这一行为也叫深克隆,深拷贝 ...

  5. arm64 下内核 crash—— 非法地址

    下面是在实际工作中遇到的一次内核(5.4.110)访问非法内存地址(空指针)导致出错的现场,在这里记录一下简单的分析流程为以后遇到类似的问题作为参考. [ 220.619861] Unable to ...

  6. 关于CycleGAN损失函数的可视化理解

    看了<Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks>这篇论文,大致了解了C ...

  7. 巅峰对话在线研讨 Q&A:Oracle Database 21c vs openGauss 2.0新特性解读和架构演进

    2021年11月11日,墨天轮<巅峰对话>栏目邀请到了两位数据库领域的巅峰人物:云和恩墨创始人盖国强老师,和来自清华大学计算机与技术系的李国良教授,为大家带来了在线研讨<Oracle ...

  8. iOS中RunLoop和线程的关系

    RunLoop又叫运行循环,主要用来管理线程.一个线程对应一个RunLoop,一个RunLoop又有五种模式.只有主线程的RunLoop是默认开启的,所以程序在开启后,会一直运行,不会退出.其他线程的 ...

  9. 关于 apt 的一些命令

    apt update 用于 更新 包索引,包列表 apt install -y open-vm-tools-desktop fuse 安装 vm-tools 工具

  10. 使用 Cursor 和 Devbox 快速开发基于 Rust 的 WASM 智能合约

    本教程以一个智能合约(使用 NEAR 的一个官方 Fungible Tokens 来实现)的例子来介绍一下 Devbox 的强大功能,轻松构建环境,轻松发布. NEAR 是一个去中心化的应用平台,使用 ...