tmux 替换 nohup

替换方案 tmux

训练PyTorch模型的时候一个基本步骤:

[terminal]: tmux new -s model-ft        # 创建一个会话,并设置会话名:model-ft

[tmux]: conda activate your_env        # 在tmux会话中,我们激活我们要使用的conda环境

[tmux]: python train.py                       # 在tmux会话中,开始训练我们的模型

[tmux]: [ Ctrl+b ] [ d ]                          # 将会话与窗口分离

[terminal]: tmux ls                              # 查看我们刚刚创建的会话

[terminal]: watch -n 0.5 nvidia-smi     # 监控我们的GPU使用信息

[terminal]: tmux attacth -t model-ft     # 激活到我们想要的窗口

使用方法:

Ubuntu 安装

sudo apt-get install tmux

启动

新建session,可以在terminal上输入tmux命令,会自动生成一个id为0的session

tmux

也可以在建立时显式地说明session的名字,这个名字可以用于解绑后快速的重新进入该session:

tmux new -s your-session-name

分离(转到后台)

在tmux窗口中,按下ctrl+b d或者输入以下命令,就会将当前session与窗口分离,session转到后台执行:

tmux detach

这里你直接关闭这个窗口(右上角X号),也是无所谓的,它也会默认执行 ctrl+b d 操作

 

查看都有什么窗口

tmux ls

打开已有的窗口

tmux attach -t your-session-name

你也可以使用下面的简写,将attach改为a是一样的 

tmux a -t your-session-name

在已经打开的窗口中切换窗口

  • ctrl+b w: 从列表中选择窗口(这个最好用)

tmux上下翻屏

使用快捷键ctrl+b [ ,就可以通过方向键上下移动 或者 使用PageUpPageDown可以实现上下翻页

退出/杀死

如果你想退出该session,可以杀死session:

tmux kill-session -t your-session-name

也可以使用ctrl+d关闭该session的所有窗口来退出该session。

Tmux教程 (一文就够)-CSDN博客

【nohup后台挂起的一种替代方式】TMUX命令使用技巧_使用tmux代替nuhup-CSDN博客

 为什么要使用tmux而不使用nohup?

 nohup可能出现的问题描述:torch.distributed.elastic.multiprocessing.api.SignalException: Process 5262 got signal: 1

 训练的时候,如果是保持命令行窗口不关闭,则不会出现这个问题;如果是使用nohup挂在后台运行,则没多久就会出现这个问题。

[2024-04-09 14:51:16,227] torch.distributed.elastic.agent.server.api: [WARNING] Received Signals.SIGHUP death signal, shutting down workers
[2024-04-09 14:51:16,228] torch.distributed.elastic.multiprocessing.api: [WARNING] Sending process 5302 closing signal SIGHUP
[2024-04-09 14:51:16,228] torch.distributed.elastic.multiprocessing.api: [WARNING] Sending process 5303 closing signal SIGHUP
Traceback (most recent call last):
  File "/root/miniconda3/envs/MDT/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/root/miniconda3/envs/MDT/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/launch.py", line 196, in <module>
    main()
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/launch.py", line 192, in main
    launch(args)
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/launch.py", line 177, in launch
    run(args)
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/run.py", line 797, in run
    elastic_launch(
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 134, in __call__
    return launch_agent(self._config, self._entrypoint, list(args))
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 255, in launch_agent
    result = agent.run()
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/elastic/metrics/api.py", line 124, in wrapper
    result = f(*args, **kwargs)
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/elastic/agent/server/api.py", line 736, in run
    result = self._invoke_run(role)
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/elastic/agent/server/api.py", line 877, in _invoke_run
    time.sleep(monitor_interval)
  File "/root/miniconda3/envs/MDT/lib/python3.8/site-packages/torch/distributed/elastic/multiprocessing/api.py", line 62, in _terminate_process_handler
    raise SignalException(f"Process {os.getpid()} got signal: {sigval}", sigval=sigval)
torch.distributed.elastic.multiprocessing.api.SignalException: Process 5262 got signal: 1

在网上找了下解决办法,发现使用tmux替代nohup是一个可行的方案。

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

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

相关文章

JVM_垃圾收集器

GC垃圾收集器 文章目录 GC垃圾收集器GC垃圾回收算法和垃圾收集器关系GC算法主要有以下几种四种主要的垃圾收集器SerialParallelCMSG1垃圾收集器总结查看默认垃圾收集器 默认垃圾收集器有哪些各垃圾收集器的使用范围部分参数说明 新生代下的垃圾收集器并行GC(ParNew)并行回收GC&…

【C++航海王:追寻罗杰的编程之路】探寻实用的调试技巧

目录 1 -> 什么是bug&#xff1f; 2 -> 调试是什么&#xff1f;有多重要&#xff1f; 2.1 -> 调试是什么&#xff1f; 2.2 -> 调试的基本步骤 2.3 -> Debug和Release的介绍 3 -> Windows环境调试介绍 3.1 -> 调试环境的准备 3.2 -> 学会快捷键…

:-1: error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set

qt报错 错误1 : error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isnt set 错误1 : error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn’t set bug的现象:qtcreator无法通过点击pro文件来打开项目 方法:参考 根据上面的参考,我么找到…

【React】React hooks 清除定时器并验证效果

React hooks 清除定时器并验证效果 目录结构如下useTime hookClock.tsx使用useTime hookApp.tsx显示Clock组件显示时间&#xff08;开启定时器&#xff09;隐藏时间&#xff08;清除定时器&#xff09; 总结参考 目录结构如下 useTime hook // src/hooks/common.ts import { u…

三角测量法恢复深度

参考&#xff1a;单目vo中的深度确定方法--三角测量_单目相机三角测量-CSDN博客 方法一&#xff1a;直接法 由于我们已经通过本质矩阵分解或者单应矩阵分解获得了R与t&#xff0c;此时想求的是两个特征点的深度 bool depthFromTriangulation(const SE3& T_search_ref,co…

电脑开机提示“no bootable device”,无法进入系统

当您的Windows 10电脑开机时提示“no bootable device”,这意味着计算机无法找到一个可以启动操作系统的设备。这个问题通常与硬件连接、BIOS设置、硬盘问题、引导扇区故障或系统文件损坏等有关。以下是一系列详细的解决步骤: 检查硬件连接:关闭电脑,拔掉电源线,打开机箱检…

Flutter之TabBar篇

总结了一下项目中用到的几种TabBar&#xff0c;针对不同的样式&#xff0c;有采用系统提供的&#xff0c;也有三方插件提供的&#xff0c;也有自定义的&#xff0c;效果如下&#xff08;后续如果遇到新的样式&#xff0c;会不间断地记录更新&#xff0c;避免重复造轮子…&#…

性能分析-数据库与磁盘知识

数据库 数据库&#xff0c;其实是数据库管理系统dbms。 数据库管理系统&#xff0c; 常见&#xff1a; 关系型数据库&#xff1a; mysql、pg、 库的表&#xff0c;表与表之间有关联关系&#xff1b; 表二维表统一标准的SQL&#xff08;不局限于CRUD&#xff09;非关系型数据…

ssm034学生请假系统+jsp

学生请假系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生请假系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处…

鸿蒙HarmonyOS开发实例:【简单时钟】

简单时钟 介绍 本示例通过使用[ohos.display]接口以及Canvas组件来实现一个简单的时钟应用。 效果预览 主页 使用说明 1.界面通过setInterval实现周期性实时刷新时间&#xff0c;使用Canvas绘制时钟&#xff0c;指针旋转角度通过计算得出。 例如&#xff1a;"2 * M…

Microsoft Visio 参与者 [actor] - 人的形状图标

Microsoft Visio 参与者 [actor] - 人的形状图标 1. 更多形状 -> 搜索形状2. 参与者References 1. 更多形状 -> 搜索形状 2. 参与者 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

【简单讲解下如何Java中文乱码浅析及解决方案】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

力扣经典150题(1)

文章目录 6.Z字形变换82.删除排序链表中的重复元素||61.旋转链表100.相同的树 6.Z字形变换 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1…

Spring循环依赖

Java开发常见面试题详解&#xff08;LockSupport&#xff0c;AQS&#xff0c;Spring循环依赖&#xff0c;Redis&#xff09;_java 常见面试题详解(locksupport-CSDN博客 循环依赖现象在spring容器中注入依赖的对象&#xff0c;有2种情况 构造器方式注入依赖&#xff08;不可行…

基于遗传优化的SVD水印嵌入提取算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于遗传优化的的SVD水印嵌入提取算法。对比遗传优化前后SVD水印提取性能&#xff0c;并分析不同干扰情况下水印提取效果。 2.测试软件版本以及运行结果展示 MA…

根据mysql的执行顺序来写select

过滤顺序指的是mysql的逻辑执行顺序&#xff0c;个人觉得我们可以按照执行顺序来写select查询语句。 目录 一、执行顺序二、小tips三、案例第一轮查询&#xff1a;统计每个num的出现次数第二轮查询&#xff1a;计算**最多次数**第三轮查询&#xff1a;找到所有出现次数为最多次…

Linux使用宝塔面板安装MySQL结合内网穿透实现公网连接本地数据库

文章目录 推荐前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不…

【docker】Docker 简介

Docker 简介 什么是虚拟化、容器化?为什么要虚拟化、容器化&#xff1f;虚拟化实现方式应用程序执行环境分层虚拟化常见类别虚拟机容器JVM 之类的虚拟机 常见虚拟化实现主机虚拟化(虚拟机)实现容器虚拟化实现容器虚拟化实现原理容器虚拟化基础之 NameSpace 什么是虚拟化、容器…

ADC电路项目1——10bit SAR ADC 设计,smic18工艺,有工艺库,有效位数ENOB为9.8

分享一个入门SAR ADC的完整电路项目&#xff0c;适合新手小白学习 10bit 20MHz SAR ADC&#xff08;WX:didadidadidida313&#xff0c;加我备注&#xff1a;CSDN 10 bit SAR ADC&#xff0c;谢绝白嫖哈&#xff09; 概述&#xff1a; 本设计采用 smic18mmrf CMOS 工艺&#xf…

【自然语言】使用词袋模型,TF-IDF模型和Word2Vec模型进行文本向量化

一、任务目标 python代码写将 HarryPorter 电子书作为语料库&#xff0c;分别使用词袋模型&#xff0c;TF-IDF模型和Word2Vec模型进行文本向量化。 1. 首先将数据预处理&#xff0c;Word2Vec 训练时要求考虑每个单词前后的五个词汇&#xff0c;地址为 作为其上下文 &#xf…