当前位置: 首页 > ops >正文

在云服务器中使用tmux实现程序24小时运行

前言

使用python code.py指令在云服务器的终端中跑代码时,存在一个问题:当我直接关毕浏览器时,终端会随之终止,程序也停止运行,无法实现24h不停运行。后经查询资料,有多种方法解决,这里记录使用tmux实现关毕浏览器和终端后程序不中断的步骤。

本次使用的是火山29/年的云服务器(很是实惠了),之前使用autodl训练模型时,使用python code.py运行代码时,在关毕终端后,程序依旧会自动运行,所以这里提醒应该不是所有的服务器都需要使用tmux。

原因

原本以为在服务器终端通过python code.py跑代码时,该程序不是简单的存活于浏览器中打开的当前终端。之所以有这种想法是因为之前使用autodl时,代码确实能不间断运行,只要不关闭服务器。但这次在火山云的那一款服务器中却发现,程序是存在于相应终端,当浏览器关毕时,终端也随之终止,进而程序也终止。所以,就需要通过某种方法,使得程序不会随终端终止而终止。这里记录的方法是tmux。

操作系统:centos,对于其他操作系统,大家可以直接询问ai,在相应操作系统里如何使用tmux

tmux

tmux(Terminal Multiplexer,终端复用器)是一个在 单个 SSH 会话里 就能同时开很多“窗口 / 面板”并保持会话 断线不断任务 的工具, 是云服务器、长任务、多人协作的必备神器。

需求没有 tmux有 tmux
断网/关电脑任务被杀死任务在后台继续跑
同时看多份日志开多个 SSH一个 SSH 里分屏
多人共享操作无法看到同一屏同时 attach 到同一会话
窗口太多Ctrl+Z/bg 难管Ctrl+b c 随意建新窗口

步骤

安装tmux

sudo yum install -y tmux

创建并进入会话

tmux new -s pyjob

其中pyjob是会话名称,可根据任务场景自行修改。屏幕会清空,底部出现绿色状态栏,说明你在名为 pyjob 的 tmux 会话里了

在会话里启动程序

cd /path/to/your/code          # 先切到代码目录
python code.py                 # 或者 python3 code.py

此时输出会直接刷在 tmux 窗口里。

安全脱离会话

前缀键 Ctrl + b,松开后再按 d(detach)。如此,即返回普通shell

另外,可随时重新连回会话查看程序运行情况,在普通shell中使用以下指令:

tmux attach -t pyjob

# 常用指令

# 1. 新建会话
tmux new -s work
​
# 2. 断开会话(任务继续跑)
Ctrl+b d
​
# 3. 重新连上
tmux attach -t work
​
# 4. 分屏
Ctrl+b %   # 垂直
Ctrl+b "   # 水平
​
# 5. 切换窗口
Ctrl+b 0 1 2 …
​
# 6. 退出会话
exit
​
# 7. 列出所有会话
tmux ls
http://www.xdnf.cn/news/18530.html

相关文章:

  • daily notes[4]
  • Sqlserver存储过程
  • Python入门:从零开始的编程之旅
  • git实战问题(6)git push 时发现分支已被更新,push失败了怎么办
  • GaussDB 数据库架构师修炼(十八) SQL引擎-解析器
  • 学习游戏制作记录(合并更多的技能与技能树)8.23
  • [e3nn] 模型部署 | TorchScript JIT | `@compile_mode`装饰器 | Cython
  • 老年常见疾病及健康管理建议
  • 精斗云智能开单解决方案:高效移动办公新体验
  • Qt/C++开发监控GB28181系统/录像文件回放/自动播放下一个录像文件/倍速回放/录像文件下载
  • openharmony之一多开发:产品形态配置讲解
  • 使用自制的NTC测量模块测试Plecs的热仿真效果
  • 分布式蜜罐系统的部署安装
  • 微服务统一入口——Gateway
  • Redis 从入门到精通:原理、实战与性能优化全解析
  • Flutter BLoC 全面入门与实战(含代码示例)
  • 云计算-K8s 运维:Python SDK 操作 Job/Deployment/Pod+RBAC 权限配置及自定义 Pod 调度器实战
  • 概率论基础教程第六章 随机变量的联合分布(一)
  • FastAPI + SQLAlchemy 数据库对象转字典
  • 解决coze api使用coze.workflows.runs.create运行workflow返回400,但text为空
  • SEO优化工具学习——Ahrefs进行关键词调研(包含实战)
  • 市政道路井盖缺失识别误报率↓82%!陌讯多模态融合算法实战优化与边缘部署
  • ChipCamp探索系列 -- 4. Intel CPU的十八代微架构
  • 【React Native】自定义轮盘(大转盘)组件Wheel
  • 【KO】前端面试题四
  • 今日科技热点 | 量子计算突破、AI芯片与5G加速行业变革
  • PLECS 中使用 C-Script 来模拟 NTC 热敏电阻(如 NTC3950B)
  • 【K8s】整体认识K8s之Docker篇
  • 百度面试题:赛马问题
  • 嵌入式LINUX-------------数据库