断开ssh连接程序继续运行

news2025/2/23 17:34:14

在使用 SSH 远程连接服务器时,我们常希望在断开连接后仍然让程序继续运行,以下是几种常见的方法:

1. 使用 screen 或 tmux

screen 和 tmux 是两款非常强大的终端复用工具,它们允许你在后台运行会话,即使断开 SSH 连接,程序也会继续运行。
screen
安装 screen

sudo apt-get install screen  # Ubuntu/Debian
sudo yum install screen      # CentOS
sudo pacman -S screen        # Arch 

例如创建一个名为 mysession 的会话

screen -S mysession

在 screen 会话中启动程序,例如

python myscript.py

断开当前会话:
按下 Ctrl+A,然后按 D 键,这将把会话放到后台。

重新连接到会话:

screen -r mysession

tmux
安装 tmux

sudo apt-get install tmux  # Ubuntu/Debian
sudo yum install tmux      # CentOS
sudo pacman -S tmux        # Arch Linux

启动 tmux 会话

tmux new -s mysession

断开当前会话:
按下 Ctrl +B 然后按 D 键,这将把会话放到后台。

重新连接到会话

tmux attach -t mysession

2.使用 nohup

运行程序

nohup python myscript.py &

这将把程序放到后台运行,并将输出重定向到 nohup.out 文件。

查看输出:

cat nohup.out

3.使用 disown

如果你已经启动了一个程序,但忘记使用 screennohup ,可以使用 disown 命令。
启动程序

python myscript.py

将程序放到后台:
按下 Ctrl +Z,然后运行 bg

bg

使用 disown

disown

这将使程序在后台运行,并且不会被终止。

4.使用 systemdsupervisord

systemd 是 Linux 系统的初始化系统,supervisord 是一个用 Python 编写的进程控制工具
systemd
创建服务文件:
/etc/systemd/system/ 目录下创建一个服务文件,例如 myscript.service

[Unit]
Description=My Script Service

[Service]
ExecStart=/usr/bin/python /path/to/myscript.py
Restart=always

[Install]
WantedBy=multi-user.target

启动服务

sudo systemctl start myscript

设置开机启动

sudo systemctl enable myscript

supervisord
安装 supervisord:

sudo apt-get install supervisor

配置程序:
/etc/supervisor/conf.d/ 目录下创建一个配置文件,例如 myscript.conf

[program:myscript]
command=/usr/bin/python /path/to/myscript.py
autostart=true
autorestart=true
stdout_logfile=/var/log/myscript.log
stderr_logfile=/var/log/myscript.err

更新配置并启动:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start myscript

总结
• 如果需要简单地让程序在后台运行,推荐使用 screen 或 tmux
• 如果只是临时需要让程序继续运行,可以使用 nohupdisown
• 如果需要更复杂的程序管理,可以使用 systemdsupervisord

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

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

相关文章

idea-代码补全快捷键

文章目录 前言idea-代码补全快捷键1. 基本补全2. 类型匹配补全3. 后缀补全4. 代码补全 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,…

我们来学人工智能 -- DeepSeek客户端

DeepSeek客户端 题记使用后记系列文章 题记 我选择了 Cherry Studio是国内产品由CherryHQ团队开源是一个平台在这里,有豆包、kimi、通义千问的入口当然,最主要是作为大模型的UI正如标题,这里,作为DeepSeep的客户端 使用 下载本…

洛谷 P1102 A-B 数对(详解)c++

题目链接:P1102 A-B 数对 - 洛谷 1.题目分析 2.算法原理 解法一:暴力 - 两层for循环 因为这道题需要你在数组中找出来两个数,让这两个数的差等于定值C就可以了,一层for循环枚举A第二层for循环枚举B,求一下看是否等于…

计算机视觉:主流数据集整理

第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络(附代码) 第五章&#xff1…

2025软件测试面试常问的题(详细解析)

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 测试技术面试题 1、什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台、软件平…

项目POC的作用是什么

在项目管理和开发中,POC(Proof of Concept,概念验证)作为一个关键的步骤,扮演着非常重要的角色。POC的作用主要是验证某个概念、技术或方案的可行性,通过小规模实验或原型验证项目的关键假设,帮…

集合 数据结构 泛型

文章目录 1.Collection集合1.1数组和集合的区别【理解】1.2集合类体系结构【理解】1.3Collection 集合概述和使用【应用】内部类匿名内部类Lambda表达式 1.4Collection集合的遍历【应用】1.5增强for循环【应用】 2.List集合2.1List集合的概述和特点【记忆】2.2List集合的特有方…

vue-treeselect显示unknown的问题及解决

问题 解决办法 去node-modules包里面找到这个组件的源码,在它dist文件里面找到这个文件,然后搜索unknown,把它删掉就可以解决了。

代码随想录-训练营-day35

309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) 这个题比起我们的买卖股票二来说多了一个冷冻期的说法,也就是我们卖出股票的第二天无法买入股票。 这样对我们而言,dp数组的含义,或者说dp数组中的状态显然就不能是…

【Blender】二、建模篇--06,曲线建模/父子级和蒙皮修改器

00:00:03,620 --> 00:00:09,500 前几节可能我们已经做了很多种类型的模型了 但是有一种类型 我们一直避开就是这种管道 1 00:00:10,050 --> 00:00:19,370 藤条头发啊 衣服架子啊这种弯弯绕绕的 需要一定柔软度的模型 那么这节课呢我们都来集中看一下曲线的模型 我们应该…

【服务器与本地互传文件】远端服务器的Linux系统 和 本地Windows系统 互传文件

rz 命令:本地上传到远端 rz 命令:用于从本地主机上传文件到远程服务器 rz 是一个用于在 Linux 系统中通过 串口 或 SSH 上传文件的命令,它实际上是 lrzsz 工具包中的一个命令。rz 命令可以调用一个图形化的上传窗口,方便用户从本…

被裁20240927 --- WSL-Ubuntu20.04安装cuda、cuDNN、tensorRT

cuda、cuDNN、tensorRT的使用场景 1. CUDA(Compute Unified Device Architecture) 作用: GPU 通用计算:CUDA 是 NVIDIA 的并行计算平台和编程模型,允许开发者直接利用 GPU 的并行计算能力,加速通用计算任…

【架构】微内核架构(Microkernel Architecture)

微内核架构(Microkernel Architecture) 核心思想 微内核架构(又称插件式架构)通过最小化核心系统,将可扩展功能以插件模块形式动态加载,实现高内聚低耦合。其核心设计原则: 核心最小化:仅封装基础通用能力(如插件管理、通信机制、安全校验)功能插件化:所有业务功能…

动静态链接与加载

目录 静态链接 ELF加载与进程地址空间(静态链接) 动态链接与动态库加载 GOT表 静态链接 对于多个.o文件在没有链接之前互相是不知到对方存在的,也就是说这个.o文件中调用函数的的跳转地址都会被设定为0(当然这个函数是在其他.…

83_CentOS7通过yum无法安装软件问题解决方案

大家好,我是袁庭新。很多小伙伴在CentOS 7中使用yum命令安装软件时,出现无法安装成功的问题,今天给大家分享一套解决方案~ 在CentOS 7中,yum是一个常用的包管理工具,它基于RPM包管理系统。如果你发现yum无法使用,可能是由于多种原因造成的。以下是一些解决步骤,可以帮…

数据包在客户端和服务端,以及网络设备间如何传输的?

声明:文章中图片来自于网络收集,整体流程自己梳理。 目录 问题:如下socket客户端请求数据包如何传输的? 拓扑环境 数据包在分层间传输 网络分层L2/L3/L4 数据包收发-在各分层间变化 各层头部中-核心信息 数据包在不同设备…

用Python实现Excel数据同步到飞书文档

目录 一、整体目标 二、代码结构拆解 三、核心逻辑讲解(重点) 1. 建立安全连接(获取access_token) 2. 定位文档位置 3. 数据包装与投递 四、异常处理机制 五、函数讲解 get_access_token() 关键概念解释 1. 飞书API访问…

25林业研究生复试面试问题汇总 林业专业知识问题很全! 林业复试全流程攻略 林业考研复试真题汇总

25 林业考研复试,专业面试咋准备?学姐来支招! 宝子们,一提到林业考研复试面试,是不是就慌得不行,感觉老师会扔出一堆超难的问题?别怕别怕,其实林业考研复试就那么些套路,…

vxe-table实现动态列

vxe-table实现动态列 1.动态列解释2.解决步骤2.1将后端返回的动态列表头,按照格式拼接在固定列表头上2.2将后端返回的列表数据按照键值对格式组装 1.动态列解释 正常列表是有固定的列;我的需求是,最初只知道表格的固定两列,查询数…

尚硅谷爬虫note009

一、jsonpath 1.安装 pip install jsonpath 2.使用 只能解析本地文件 .json文件 {"store": {"book": [{"category": "reference","author": "Nigel Rees","title": "Sayings of the Century&qu…