Linux终端退出程序不退出解决方案(nohup/screen)

2023-10-27

终端异常退出后,后台进程不关闭的解决办法:
1、使用nohup命令: nohup <command> [argument…] & nohup可以屏蔽SIGHUP信号!

2、使用 screen命令。

打开一个ssh终端,执行screen,并回车,即可创建了一个新的虚拟终端

  此时在上边执行的程序,如果遇到服务器断线是不会中断的,依然会在后台运行

  当新的ssh连接到服务器后,执行screen -x 就可以连接到刚才的终端了

  此外,利用screen建立的终端,还具有实时演示的效果。

  比如两个用户A和B,分别从北京和上海使用SSH连接到一个服务器

  A先执行screen建立好虚拟终端,B执行screen -x连接上来

  这时候的虚拟终端是唯一的,就像二人都在显示器前一样

  A键入的命令和显示的结果,B都可以实施看到

  B键入的命令和输入结果,A也可以实施看到

  因此,利用screen,还可以进行远程操作演示、培训等

  注意:

  1) 如果多次执行screen,则会建立多个虚拟终端。

  当执行screen -x的时候,则会被询问,要连接到哪一个虚拟终端,如下所示:

  [root@idc root]# screen -x

  There are several suitable screens on:

  1408.pts-0.idc (Attached)

  1382.pts-4.idc (Attached)

  Type "screen [-d] -r [pid.]tty.host" to resume one of them.

  [root@idc root]#

  这个时候,要执行screen -x <终端名>,就可以连接到需要的终端,例如

  screen -x 1382.pts-4.idc,即可连接到名为1382.pts-4.idc的虚拟终端上。

  2) 退出虚拟终端的方法:首先用screen -x连接到终端,然后执行exit即可退出当前终端。


screen命令介绍
1. $:screen  创建一个screen(可以用screen -S ID,打开一个指定的ID session)
2. $:screen -ls 显示所有的screen会话
3. $:screen -d  脱离当前screen ,返回正常shell
4. $:screen -r 6361(用session -ls可以得到)进入指定screen
  参  数:
  -A  将所有的视窗都调整为目前终端机的大小。
  -d<作业名称>  将指定的screen作业离线。
  -h<行数>  指定视窗的缓冲区行数。
  -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
  -r<作业名称>  恢复离线的screen作业。
  -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
  -s  指定建立新视窗时,所要执行的shell。
  -S<作业名称>  指定screen作业的名称。
  -v  显示版本信息。
  -x  恢复之前离线的screen作业。
  -ls或--list  显示目前所有的screen作业。
  -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。
Screen 操作快捷键
* ctrl-a c:创建一个新的 Shell
* ctrl-a ctrl-a:在 Shell 间切换
* ctrl-a n:切换到下一个 Shell
* ctrl-a p:切换到上一个 Shell
* ctrl-a 0…9:同样是切换各个 Shell
* ctrl-a d:退出 Screen 会话


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux终端退出程序不退出解决方案(nohup/screen) 的相关文章

  • 如何在 shell 脚本中操作 $PATH 元素?

    有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素 这就是我想要的 PATH home joe bin usr local bin usr bin bin path to app bin and remove or rep
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • fopen 不返回

    我在 C 程序中使用 fopen 以只读模式 r 打开文件 但就我而言 我观察到 fopen 调用没有返回 它不返回 NULL 或有效指针 执行在 fopen 调用时被阻止 文件补丁绝对正确 我已经验证过 并且不存在与权限相关的问题 任何人
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • 如何在 Windows 下向 .sh 脚本传递参数?

    我正在尝试在 Windows 下执行 sh 脚本 我安装了 Git 它允许我执行 sh 文件 但是 如果不使用 sh 作为执行前缀 我似乎无法传递任何参数 我的 sh 文件 echo Test 1 如果我用以下命令执行它 gt sh tes
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 在 bash 脚本中提取 XML 值 [重复]

    这个问题在这里已经有答案了 我正在尝试从 xml 文档中提取一个值 该文档已作为变量读入我的脚本中 原始变量 data is
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute

随机推荐

  • 深入 AXI4 总线(一)握手机制

    VALID READY 握手机制 AXI 总线共有 5 个独立的通道 分别为写地址 写数据 写回应 读地址 读数据通道 5 条通道相互独立 有一些细小的差别 但共同使用一套握手机制 VALID READY 机制 VALID READY 机制
  • 笔记: C语言中的骚操作 (带参宏定义及三目运算实例)

    带参宏定义及三目运算实例 带参宏定义 就是带参数的宏定义 类似函数 三目运算 A B C 即 A为真 则输出B 为假则输出C n 1输出高电平 define CON1 1 PC12 n n HAL GPIO WritePin GPIOC G
  • 2022年度游戏本行业数据报告:十大热门品牌销量排行榜

    2022年游戏本市场的总体局面是 产品竞争极为激烈 同时又各具特色卖点 今年的游戏本市场 市场格局并未有较大的变化 但是新技术 新产品层出不穷 各个游戏本厂商们通过不断创新 提升产品性能 推出了体验感更好的产品 满足了用户不同场景的应用需求
  • HTTP协议和编程实现

    1 HTTP协议 http协议是建立在TCP IP协议之上应用层协议 默认端口为80或者8080 http协议的的特点是无状态 无连接 在访问数据的时候才进行连接 不是长连接 http协议的报文传输的是ASCII码 在TCP IP协议之上
  • 面向对象程序设计的几个基本概念

    面向对象程序设计由6个概念组成 1 类 它是每一个Java程序的基本结构 它包含数据域和数据操作机制 类提供了创建这些软件对象的模板 2 对象 对象是以类为模板创建的实例 以各类可以用来生成任意多个对象 3 封装性 允许或禁止访问类或对象的
  • Centos7 Shell脚本监控磁盘容量实现钉钉告警

    前言 此脚本用来监控服务器磁盘容量实现钉钉告警功能 一 编写Shell脚本 创建脚本存放目录 存放在 data shell 下 mkdir p data shell vim data shell DingTalk Alert bin bas
  • 七款好用的项目管理软件

    TeamLab 它是一个在线商业协作和项目管理的平台 主要功能包括 项目管理 里程碑管理 任务 报表 事件 博客 论坛 书签 Wiki 即时消息等 TeamLab是专为中小型企业 团队打造的系统 使用SaaS解决方案的网站 也就是说 您可以
  • linux 部署Django + apache2 + python3

    之前在本地部署了Django的restful应用Django 从零开始实现简单的restful应用 现在把它部署到服务器上 安装 在部署过程中 很多需要的东西之前已经安装好 所以 python 3 我的服务器是ubuntu 16 04 预装
  • Head First Design Mode(2)-设计模式入门(策略模式)

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 设计模式入门 欢迎来到设计模式世界 我们会看到设计模式的用途和优点 再看看关键的OO原则 通过实例来了解模式是如何运作的 以往是代码复用 现在是经验复用 模拟鸭子的应
  • Character Encoding Issues(good!!!)

    Character Encoding Issues Questions Why What is the default character encoding of the request or response body Why does
  • 【Verilog-26】Net线路连接

    Net是结构描述中为线路连接 连线和接线 建立的模型 net的值是由net的驱动所决定的 驱动器可以是门 UDP 实例模块或者连续赋值语句的输出 语法 1 supply0和supply1类型的net变量分别具有逻辑值0和1 并可以为它定义驱
  • linuxfb简单说明

    framebuffer简介 Linux framebuffer dev fb 是用来屏蔽图形显示硬件的抽象层 如果不对硬件进行抽象屏蔽 不同硬件显卡 可能需要编写不同的驱动和应用程序 而引入framebuffer进行统一的抽象后 开发人员可
  • 【从零开始写博客】链表运用:链表的增删查改及反转(day3)

    代码随想录刷题60天 数组 day2 数组 day1 目录 链表概述 一 链表增删地初次理解 二 链表常见六个操作 三 链表的转置 总结 链表概述 链表是通过指针将一个个节点串起来的数据结构 其优点是增删方便 灵活性强 以下将结合leetc
  • Maven插件开发及Demo演示

    引言 maven不仅仅只是项目的依赖管理工具 其强大的核心来源自丰富的插件 可以说插件才是maven工具的灵魂 本篇文章将对如何自定义maven插件进行讲解 希望对大家有所帮助 背景 讲如何开发maven插件之前 不妨先来聊一下什么是mav
  • Spring: 事务传播机制

    文章目录 1 美图 2 Transactional 注解的属性信息 3 案例 3 1 建表 3 2 项目结构 3 3 配置 3 4 config 3 5 实体类 3 5 业务类 3 6 测试类 3 REQUIRED 4 NOT SUPPOR
  • python接口自动化(十二)--https请求(SSL)(详解)

    简介 本来最新的requests库V2 13 0是支持https请求的 但是一般写脚本时候 我们会用抓包工具fiddler 这时候会 报 requests exceptions SSLError SSL CERTIFICATE VERIFY
  • MySQL简单命令和SELECT查询,给字段起别名【MySQL数据库】

    Java养成计划 学习打卡第六十四天 内容导航 数据库的相关操作 数据库的导入 查看导入数据库中的表 查看表中的数据 查看表的基本结构 简化 查看表的结构 详细 查看mysql数据库的版本号 查询当前使用的数据库 退出mysql SQL查询
  • C#常见的两种错误

    一 WindowsFormsApplication2 Form1 不包含 Form1 Load 的定义 并且找不到可接受类型为 WindowsFormsApplication2 Form1 的第一个参数的扩展方法 Form1 Load 是否
  • 小程序上传发布

    1 上传发布 一个小程序从开发完到上线一般要经过 预览 gt 上传代码 gt 提交审核 gt 发布等步骤 2 预览 使用开发者工具可以预览小程序 帮助开发者检查小程序在移动客户端上的真实表现 点击开发者工具顶部操作栏的预览按钮 开发者工具会
  • Linux终端退出程序不退出解决方案(nohup/screen)

    终端异常退出后 后台进程不关闭的解决办法 1 使用nohup命令 nohup