Linux配置程序后台运行(前后台来回切换)

Linux配置程序后台运行

在日常开发过程中,会遇到我们在前台运行程序,此时我们临时有事,但不能关闭终端,否则程序就会在电脑熄屏(终端session断开后)停止运行。

  • 那么作为一个合格的开发,就必须要知道如何让程序在后台运行,以及如何将后台运行的程序拉回前台。
  • 配置后台运行:
    方法一:nohup xxx &
    方法二:ctrl+z配合bg(background)
    方法三:screen
  • 后台程序拉回前台:
    1. jobs:查看jobID
    2. fg:fg %1,将jobID为1的作业拉回前台

1 配置程序后台运行

①nohup xxxx &

如果我们程序还没有运行,可以通过这种方式直接让程序在后台运行。

# outlog.txt 表示将终端输出保存到txt中
# 2>&1 表示将错误输出2定向到标注输出1中一起输出
# & 后台挂起
#0 表示stdin标准输入,用户键盘输入的内容
#1 表示stdout标准输出,输出到显示屏的内容
#2 表示stderr标准错误,报错内容
#2>&1是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
nohup ./test.sh > outlog.txt 2>&1 &

#如果不指定输出文件,默认会输出到nohup.out中
nohup ./test.sh &

# 查看是否后台运行成功,是否为running
jobs

在这里插入图片描述

②ctrl+Z加bg 作业编号

jobs查看作业,方框中为作业编号

如果我们已经在前台运行了程序,那么可以通过这种方式,将程序调整为后台运行。

  1. 使用Ctrl+z将正在前台运行的命令暂停这时命令以暂停的状态被扔到了后台
  2. jobs:查看后台作业情况
  3. bg %作业编号,例:bg %1

在这里插入图片描述

③screen

1 安装及基本操作
# 1 安装
# sudo apt-get install screen # ubuntu
sudo yum install screen #centos
# 查看是否安装成功
screen -v

# 2 使用
# 新建了一个叫testbg的窗口并进入
screen -S testbg
# 退出当前窗口,回到主窗口,窗口会出现[detached]提示
Ctrl a +d

# 恢复窗口
screen -ls #列出窗口列表

screen -r 2637 #进入2637线程,恢复count会话窗口

# 杀死窗口,再用screen -ls 可以看到该窗口后面的(???dead)字样
#说明窗口死了,但是仍在占用空间。这时需要清除窗口
kill -9 窗口ID 
# 清理死去的窗口
screen -wipe
2 配置后台运行
  1. 新建窗口
# 新建一个名为testbg的窗口
screen -R testbg

在这里插入图片描述
在这里插入图片描述

  1. 运行程序
    在这里插入图片描述

  2. ctrl+A ,然后再按下d,此时脱离窗口,来到外部窗口。开始的程序就在后台窗口运行,不会因为当前窗口退出而退出。
    在这里插入图片描述
    在这里插入图片描述

  3. 如果想进入之前窗口,可通过screen -r ID重新进入

# 查看窗口列表
screen -ls
# 重新进入窗口
screen -r 窗口ID

在这里插入图片描述
之前的程序正常运行:在这里插入图片描述

2 将后台运行程序拉回前台

fg %作业编号

jobs查看作业,方框中为作业编号

# 将任务调回前台运行 fg+ %jobID
fg %23

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/543806.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Matlab 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包,选择“解压到MatlabR2024a“。 2.打开解压后的文件夹,鼠标右击“MATHWORKS_R2024A“选择装载。 鼠标右击“setup“选择”以管理员身份运行“。点击“是“,然后点击”下一步“。复制一下密钥粘贴至输入栏,然后…

数据结构——双向链表的实现

文章目录 一、双向链表的结构二、实现双向链表创建双向链表的项目双向链表的结构List.h申请结点初始化打印尾插头插尾删头删查找在pos位置之后插入数据删除pos结点销毁 三、所有源代码List.hList.ctest.c 一、双向链表的结构 带头双向循环链表 注意:这⾥的“带头…

数据交换格式

一、什么是数据交换格式 在计算机的不同程序之间,或者不同的编程语言之间进行交换数据,也需要一种大家都能听得懂得‘语言’,这就是数据交换格式,它通过文本以特定的形式来进行描述数据。 二、常用的几种数据交换格式 客户端常…

图像处理ASIC设计方法 笔记17 连通域的图像标记算法

目录 (一)主要环节图像初步标记 -等价表初始化与等价关系记录 -整理等价表 -图像标记代换 -(二)详细算法步骤:1 等价表的操作:2 整理等价表:3 图像标记代换:连通域的图像标记算法有若干步骤,除了图像初步标记,还有等价表初始化、等价关系记录、整理等价表、图像标记代…

【C++】深度解析---赋值运算符重载(小白一看就懂!!)

目录 一、前言 二、 运算符重载 🍎运算符重载 ① 概念引入 ② 语法明细 ③ 练习巩固 ④ 代码展示 🍇赋值运算符重载 ① 语法说明及注意事项 ② 默认的赋值运算符重载 ③ 值运算符不能重载成全局函数! 三、总结 四、共勉 一、前言…

前端console用法分享

console对于前端人员来讲肯定都不陌生,相信大部分开发者都会使用console来进行调试,但它能做的绝不仅限于调试。 最常见的控制台方法 作为开发者,最常用的 console 方法如下: 控制台打印结果: 今天我分享的是一些 co…

Qt快速入门(MV架构之TableView + QStandardItemModel + 自定义代理小案例)

Qt快速入门(MV架构之TableView QStandardItemModel 自定义代理小案例) 关于MV架构的简单介绍 在Qt框架中,代理(Delegate)、模型(Model)和视图(View)之间的关系构成了…

jvisualVM分析jvm内存使用快照dump

服务发生内存溢出,就需要查看服务器上Java服务的jvm堆内存使用情况,可以使用dump命令生成dump文件,然后下载到本地,然后使用jvisualVM工具打开,即可实现可视化分析。 生成dump文件常用的两种方式: 第一种…

linux fixmap分析

本文基于Linux-4.19.125, ARM V7,dual core, MMU采用2级页表(未开启LPAE)。 1 为什么需要fixmap Linux内核启动过程中,经过汇编阶段后,mmu功能已经开启,后续只能通过虚拟地址来访问DDR&#x…

RAG应用开发实战02-相似性检索的关键 - Embedding

1 文本Embedding 将整个文本转化为实数向量的技术。 Embedding优点是可将离散的词语或句子转化为连续的向量,就可用数学方法来处理词语或句子,捕捉到文本的语义信息,文本和文本的关系信息。 ◉ 优质的Embedding通常会让语义相似的文本在空…

Linux 添加启动服务--Service

1,服务配置service文件 Service 服务的实际作用是开启后自动启动服务,运行一些不须要登录的程序,任务。 实例1、上电自动连接WIFI热点 1.1 新建.service文件 /etc/systemd/system/wificonnect.service [Unit] DescriptionService [wifico…

记录linux从0部署java项目(宝塔)

目录 一、安装宝塔可视化界面 二、部署前端 三、部署后端 1、配置并连接Mysql数据库 2、配置并连接redis 3、安装jdk 这里先记录一个安装后遇到的问题 安装openJDK 四、检查 一、安装宝塔可视化界面 宝塔面板下载,免费全能的服务器运维软件 运行安装脚本 安…

MySQL 社区版 安装总结

很早就安装过MySQL,没有遇到过什么问题,直接next就行了,这次在新电脑上安装却遇到了一些问题,记录一下。 安装的是MySQL社区版,下载地址是www.mysql.com,进入后选择DOWNLOAD页面,选择MySQL Com…

基本的数据类型在16位、32位和64位机上所占的字节大小

1、目前常用的机器都是32位和64位的,但是有时候会考虑16位机。总结一下在三种位数下常用的数据类型所占的字节大小。 数据类型16位(byte)32位(byte)64位(byte)取值范围char111-128 ~ 127unsigned char1110 ~ 255short int / short222-32768~32767unsigned short222…

HarmonyOS实战开发-自定义通知角标、如何设定应用的桌面图标角标的功能。

介绍 本示例主要展示了设定应用的桌面图标角标的功能,使用ohos.notificationManager 接口,进行桌面角标的设置,通知的发送,获取等。 效果预览 使用说明 在使用本应用时,需安装并启动仿桌面应用;在主界面…

LeetCode 57—— 插入区间

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 第一步,我们先寻找新区间和原始区间列表的重叠部分。 假设新区间为 [ x 1 , x 2 ] [x_1, x_2] [x1​,x2​],原始区间列表中的其中一个区间为 [ y 1 , y 2 ] [y_1, y_2] [y1​,y2​]&…

PostgreSQL入门到实战-第三十弹

PostgreSQL入门到实战 PostgreSQL教程网站官网地址PostgreSQL概述更新计划 PostgreSQL教程网站 https://www.postgresqltutorial.com/ 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://www.postgresql.org/PostgreS…

【数据工具】ArcGIS批量出图工具箱

工具下载链接:数据下载链接 我们在使用Arcgis制图的过程中,经常会遇到需要大量出图的情况,如何将做好的图批量导出jpg是一件令人头疼的问题。 今天小编就给大家分享俩个ArcGIS批量出图的工具箱,一个可以批量导出图层为jpg&#…

运筹说 第112期 | M/M/s等待制排队模型

通过上期学习,大家已经了解了排队论中的一些基本概念,以及生灭过程和Poisson过程。 那么本期小编将基于这些基本原理,为大家介绍M/M/s混合制排队模型,包括单服务台模型和多服务台模型,介绍模型的概念以及推导过程等内容…

PoE 技术

1 PoE 技术产生背景 随着 WLAN 、 VoIP 、网络视频监控等新业务的飞速发展,大量的无线 LAN 访问点、 IP 电话、 IP 网络摄像头等基于 IP 的终端出现在工业现场。这些设备通常数量众多、位置特殊 、 布线复杂、设备取电困难,其实施部署不仅消耗大量人力物力,…