断开ssh连接程序继续运行

news/2025/2/23 23:25:13

在使用 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.niftyadmin.cn/n/5863858.html

相关文章

【Python爬虫(45)】Python爬虫新境界:分布式与大数据框架的融合之旅

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…

创建型模式-Prototype 模式(原型模式)

原型模式 ‌原型模式(Prototype Pattern)是一种创建型设计模式,通过复制现有对象来创建新对象,避免了重复创建对象的开销‌。原型模式的核心在于通过复制现有的实例对象来生成新的实例对象,从而提升效率。‌ 场景假设…

GStreamer源码安装1.24版本

从官网下载 1.24的源码包 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/1.24?ref_typeheads#getting-started ,尝试过使用git clone 的方式,但速度贼慢,就选择了下载源码包的方式安装依赖 sudo apt install libssl-dev g me…

【Leetcode 每日一题】2506. 统计相似字符串对的数目

问题背景 给你一个下标从 0 0 0 开始的字符串数组 w o r d s words words。 如果两个字符串由相同的字符组成,则认为这两个字符串 相似 。 例如,“abca” 和 “cba” 相似,因为它们都由字符 ‘a’、‘b’、‘c’ 组成。然而,“…

八大排序算法(1)插入排序-直接插入排序 和 希尔排序

直接插入排序(Insertion Sort) 直接插入排序是最基本的插入排序算法,工作原理如下: 从第二个元素开始,将其与前面已经排好序的部分进行比较。 找到合适的位置后,将该元素插入到合适的位置,同…

【20250221更新】WebStorm2024.3.3版本安装+使用方法

1、官网下载正版WebStorm,链接如下 Thank you for downloading WebStorm! 2、获取使用教程,给博主留言【压缩包有密码,见下面】 通过百度网盘分享的文件:【2025022… 链接:https://pan.baidu.com/s/1UMMEDKbRwlGcffAhOlwR5g?pw…

华为guass在dbever和springboot配置操作

下面记录华为guass在dbever和springboot配置操作,以备忘。 1、安装dbeaver-ce-23.2.0-x86_64-setup.exe和驱动程序 Download | DBeaver Community 2、配置高斯数据库驱动 3、新建数据库连接 4、操作指引 opengauss官方文档 https://docs-opengauss.osinfra.cn/zh…

商业航天级微控制器单元(MCU)技术特征分析

在商业航天及特种工业控制领域,微控制器单元(MCU)的抗辐射性能与系统可靠性直接关系到设备在极端环境下的运行效能。国科安芯AS32S601系列MCU基于自主RISC-V架构,其180MHz(AS32S601)的工作频率与抗辐射加固设计,为航天…