【Linux】Linux系统SSH客户端断开后保持进程继续运行配置方法;Python等脚本在终端后台运行的方法

news2025/1/11 21:47:28

0. 概述

在Linux系统中,通常我们在执行一些运行时间比较长的任务时,必须等待执行完毕才能断开SSH连接或关闭客户端软件,否则可能会导致执行中断。本文介绍几种保障程序在用户退出登录后持续运行的方法。

一、方法

1. 使用nohup执行

nohup可以使后面的命令不会响应挂断(SIGHUP)信号。也就是说,通过远程登录执行nohup命令后,即使退出登录后,程序还是会正常执行。通常情况下,nohup命令最后会跟上&字符,表示将这个命令放至后台执行,这样才能真正做到将这个命令放至后台持续的执行。具体示例如下所示。

提示:nohup通常用于执行无干预的自动化程序或脚本,无法完成带有交互的操作。

  • 执行如下命令,每秒输出一行信息。
bash hello.sh

系统显示类似如下。

在这里插入图片描述

  • 在命令头尾分别加上nohup和&,如下所示,可以看到nohup输出了一行信息,再按一下回车键就跳回了Shell命令行,此时命令已经在后台执行了,nohup将命令的输出重定向至当前目录的nohup.out文件中。同时注意到nohup会将对应程序的PID输出,PID可用于需要中断进程时结束进程。
nohup bash hello.sh &

系统显示类似如下。
在这里插入图片描述

  • 通过如下命令,可以持续的查看nohup.out的输出,达到监视程序的效果
tail -f nohup.out
  • 在命令中也可以使用重定向将程序的输出改为自己想要的文件名,如下所示,则程序的输出就会写到hello.log文件中
nohup bash hello.sh >hello.log &
  • 若程序不会自动退出,那么此时需要使用kill命令来结束进程。例如,可以使用如下命令,结束进程
kill -TRM [$PID]

说明:[$PID]为之前nohup命令输出的值。

  • 如果不需要输出日志的话,命令如下。
nohup ./run.sh >/dev/null 2>&1 &

关于/dev/null

/dev/null属于字符特殊文件,它属于空设备,是一个特殊的设备文件,它会丢弃一切写入其中的数据,写入它的内容都会永远丢失,而且没有任何可以读取的内容。它就像一个黑洞,我们一般会把/dev/null当成一个垃圾站,不要的东西丢进去。比如来清除文件中的内容。

Linux的重定向

0:表示标准输入;

1:标准输出,在一般使用时,默认的是标准输出;

2:表示错误信息输出。

./run.sh >/dev/null 2>log表示将run.sh的错误信息输出到log文件,其他信息丢进/dev/null。

./run.sh >/dev/null 2>&1表示将run.sh的错误信息重定向到标准输出,其他信息丢

2. 使用screen执行

  • 安装screen工具

Linux系统默认没有screen工具,需要先进行安装。

说明:CentOS 6与CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 6/8的源地址内容已移除。当您在CentOS 6/8系统内继续使用默认配置的源地址时会发生报错。建议您先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?和CentOS 8 EOL如何切换源?。

CentOS系列系统安装命令如下所示

yum install screen

Ubuntu 系列系统安装命令如下所示

sudo  apt-get  install screen
  • 使用方法:
    (1)执行如下命令,创建screen窗口。
screen -S [$Name]

screen -S [$Name]

(2)执行如下命令,列出screen窗口

screen -ls

系统显示类似如下。
在这里插入图片描述
(3)当需要运行脚本、执行程序时,在命令前添加screen即可。

(4)然后使用Ctrl和a键,再按下d键,就可以退出SSH登录,但不会影响screen程序的运行。

(5)若需要继续工作时,登录实例,然后执行如下命令,恢复会话即可。

screen -r -d

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络编程 事件选择模型

目录 1.概念分析 2.事件选择代码逻辑 1.WSACreateEvent函数 2.WSACloseEvent函数 3.WSAEventSelect函数 4.WSAWaitForMultipleEvents()函数 5.WSAEnumNetworkEvents函数 事件分类 3.##模型代码样例 1.概念分析 本质上是操作系统处理用户行为,详细如下 事件选…

目标检测之YOLOv5算法分析

YOLOv5共有5个版本的网络模型及其权重文件,即(n,s,m,l,x)。 (下图来自github上yolov5官方开源项目的性能截图) 其中n,s,m,l,x网络模型结构如出一辙,差异在参数上。另外的n6,s6,m6,l6,x6模型是对于更大分辨…

人生黄金十年,你有考虑来社科院与杜兰大学金融管理硕士项目汲取能量吗

在人生长河中,你觉得黄金的十年是哪个阶段呢?在一篇文章中看到人生最宝贵的十年,就是30岁到40岁这十年,一切都未确定,一切都还有机会,这个年龄段,寸阴寸金,流金年华,应该…

FFmpeg学习笔记--视频传输的基本概念

目录 1--容器(container)和文件(file) 2--媒体流(stream) 3--数据帧(frame)和数据包(packet): 4--编解码器(Codec) 5…

7万人随访发现,每周高强度运动15分钟,死亡风险降低24%

*仅供医学专业人士阅读参考我们已经知道,无论是日常规律运动,还是周末集中一两天运动,只要每周能完成至少75-150分钟的高强度有氧运动,都可以降低全因死亡率和特定原因死亡率[1]。每周300-600分钟中强度运动或150-300分钟高强度运…

RocketMQ原理篇

文章目录broker与NameServerMessageQueue与Topic的关系生产者、消费者写入读取 消息CommitLog生产者消费者组broker与NameServer 基于 Dledger 实现 RocketMQ 高可用自动切换 broker 会每隔 30 秒向 NameServer 发送一个的心跳 ,NameServer 收到一个心跳 会更新对…

kafka再浅析

在日常开发中,经常使用kafka,对它是既熟悉又陌生,下面继续聊,继续总结。 1、消息中间件 分布式消息是一种通信机制,和RPC、HTTP不一样,消息中间件采用分布式中间代理的方式进行通信。采用消息中间件后&…

MarkDown语法(自用)

目录结构展示 tree -a 显示所有tree -d 只显示文档夹tree -L n 显示项目的层级,n表示层级数,比如想要显示项目三层结构,可以用tree -l 3;tree -I pattern 用于过滤不想要显示的文档或者文档夹。比如你想要过滤项目中的 node_modu…

Linux之(17)系统服务

Linux之(17)系统服务 Author:onceday Date:2022年12月24日 漫漫长路,有多少人对你笑过… 参考文档: Systemd 入门教程:命令篇 - 阮一峰的网络日志 (ruanyifeng.com)可能是史上最全面易懂的 Systemd 服务管理教程&a…

MergeTree原理之一级索引

一级索引 MergeTree的主键使用PRIMARY KEY定义,待主键定义之后,MergeTree会依据index_granularity间隔(默认8192行),为数据表生成一级索引并保存至primary.idx文件内,索引数据按照PRIMARY KEY排序。相比使…

【PotPlayer】采集Switch图像及录制

【PotPlayer】采集Switch图像及录制下载potplayer使用方法连接设备录制视频无边框设置阳,休,懂?QAQ。阳之前买了个Switch,正好有好玩的想录下来,然后就…自行某宝,某东去买个采集卡。本文只管连软件&#x…

【运维有小邓】ADSelfService Plus身份管理

一、身份管理挑战: 由于企业需要越来越高的安全性,以保护用户帐户免遭入侵者的任何恶意攻击,因此身份管理正日益变得重要。在所有密码相关的身份挑战中,帮助台工作单量成为重中之重,它们在组织的年同比财务预算中不堪…

(二)ElasticSearch使用

一、ES的基本使用 1.创建索引 创建一个test索引http://localhost:9200/test 2.删除索引 http://localhost:9200/test 3.查看索引 http://localhost:9200/_all 4.向索引中新增数据 http://localhost:9200/person/_doc/ 5.搜索数据 http://localhost:9200/person/_doc/_sear…

全志Tina Linux SPINAND UBI 离线烧录 开发指南 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板

1 概述 编写目的: 介绍Sunxi SPINand 烧写时的数据布局 2 名词解释 词义UBIunsorted block imagePEBphysical erase blockLEBlogical erase block PEB 和logical block 关系 1 PEB 1 logical block 1 logical block 2 physical blocks3 总体数据布局 ubi 方案…

必读,一文普及MES系统知识

MES系统的基本概念制造执行系统(MES)是一套面向制造企业的信息管理系统。MES系统可以为企业提供管理模块,包括制造数据管理、计划与调度管理、生产调度管理、库存管理、质量管理、生产过程控制、底层数据集成分析、上层数据集成与分解&#x…

LVGL学习笔记5 - Display, Screen和Layer

目录 1. Display 2. Screen 2.1 创建Screen 2.2 加载Screen 2.3 获取活动的Screen 2.4 实例 2.4.1 定义2个Screen全局变量 2.4.2 初始化Screen 2.4.3 循环更替 3. Layer图层 3.1 切换顺序 3.2 顶层和系统层 3.3 实例 3.3.1 创建全局变量 3.3.2 初始化 3.3.3 …

【OpenFOAM】-olaFlow-算例5- oppositeSolitariesFlume

算例路径: olaFlow\tutorials\oppositeSolitariesFlume 算例描述: 两列反向的孤立波相互作用 学习目标: 熟练掌握olaFlow的造波设置,波浪方向与消波方向设置 算例快照: 图1 两列反向孤立波相互作用文件结构&#xff1…

Linux Kernel 远程代码执行漏洞(CVE-2022-47939)

Linux Kernel 远程代码执行漏洞(CVE-2022-47939) CVE-2022-47939 据Security Affairs消息,近期披露的一个严重 Linux 内核漏洞会影响 SMB 服务器,可能导致远程代码执行。 Linux Kernel SMB2_TREE_DISCONNECT 命令处理中存在远程…

C进阶:征服指针之指针与数组强化笔试题练习(2)

🐲🦖 本篇文章是接上篇文章的,上篇文章链接:http://t.csdn.cn/RogqL 目录 🐇🐱一.关于 strlen 函数与数组、指针的综合笔试题 😸T1. 🐆 T2. 🐅T3. 🐲一.关…

网络和通信安全中的SSL/TLS国密改造

2021年3月,国家市场监管总局、国家标准化管理委员会发布公告,国家密码应用与安全性评估的关键标准GB/T39786—2021《信息安全技术信息系统密码应用基本要求》(以下简称“GB/T39786”)正式发布,GB/T 39786是贯彻落实《中…