Linux nohup 命令

news/2024/10/2 3:27:34

Linux nohup 命令

应用场景

使用 PyCharm 连接服务器跑模型虽然很方便,但是如果遇到网络不佳、PyCharm出BUG、急需转移阵地等情况就只能中断训练,前面的全白跑了。

因此可以尝试直接在服务器上使用命令跑模型,这个命令好说,笨一点的方法直接抄用 PyCharm 运行时输出的命令嘛:

image

但是这样依然有问题,如果在运行命令时,如果退出终端则依然会中断命令,问题依然没有解决。

最后可以尝试 nohup 命令解决上述问题。

nohup 命令介绍

nohup 英文全称 no hang up,即在系统后台不挂断地运行命令,因此退出终端不会影响程序的运行。

  • 语法格式

     nohup Command [ Arg … ] [ & ]
    
  • 参数说明:

    • Command:要执行的命令。
    • Arg:一些参数,可以指定输出文件。
    • &:让命令在后台执行,终端退出后命令仍旧执行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

实例:使用 nohup 命令在后台跑模型

  • 首先应该保证你的训练代码不需要输入,然后执行以下命令

    nohup /XXX/python3 -u /XXX/train.py > test.log 2>&1 &
    

    命令注解:

    • 开头的 nohup 保证命令不挂断,最后的 & 保证终端退出后命令仍旧执行
    • /XXX/python3 -u /XXX/train.py
      • 即为使用 /XXX/python3(某个选定的解释器) 运行 /XXX/train.py(训练代码)
      • 中间的 -u 表示关闭缓存,保证把输出写入文件时无延迟
    • > test.log 将输出重定向到 test.log 文件
    • 2>&1 将错误输出重定向到标准输出,也就是错误信息也会写到标准输出的位置
      • 0 表示 stdin 标准输入
      • 1 表示 stdout 标准输出
      • 2 表示stderr标准错误信息输出
  • 注意事项:

    • 如果数据集加载路径为相对路径,则需要 cd 到代码所在的文件夹再执行命令

      • 否则会报地址错:

        image

      • 启动起来之后看一眼显卡跑起来了就对咯

        image

    • > test.log2>&1 是可选的,写与不写的区别在于少一条提示少按一次回车:

      image

      image

    • 注意记住提示的进程号,

      • 如果记不住,可以使用 jobs -l 命令查看这个进程的进程号,

        image

      • 当然如果退出终端重新打开的话这个进程会变成僵尸进程,需要用 ps -aux 命令查看所有进程找找。

        image

    • 跑起来之和可以使用 tail -f test.log 命令实时查看输出(Ctrl+C 退出),瞅瞅有没有问题:

      <image

    • 可以使用 kill -9 PID 杀掉这个进程

      image

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

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

相关文章

读《如何高效学习》[加] 斯科特扬 笔记

收获颇多,优化了个人笔记整理及日程安排的思维体系, 将各个经验之谈提炼为了逻辑性较好的系统框架。提升了个人学习和工作效率。序言第一部分 整体性学习策略 1 获取 (1)简化 (2)容量 (3)速度 2 理解 3 拓展 深度拓展 横向拓展 纵向拓展 4 纠错 5 应用 测试 信息结…

实现队列 栈 双端队列

以下都是用list来实现的实现Stack# Implement a Stack in Python class Stack(object):def __init__(self):self.items = []def is_empty(self):return self.items == []def push(self, item):self.items.append(item)def pop(self):return self.items.pop()def peek(self):ret…

uiautomator2使用方法

一.设备连接 1.usb单设备连接d = u2.connect()2.usb多设备连接d = u2.connect("90bf8faf") # 多台设备填写device即可3.wifi连接d = u2.connect("ip:proxy") # wifi连接设备adb使用wifi连接设备:https://www.cnblogs.com/lihongtaoya/p/17553171.html 二…

查看、删除数据库

#删除和查询数据库 #查看当前数据库服务器中的所有数据库 show databases #查看hsp_db01数据库的定义信息 show create database `hsp_db01` #在创建数据库,表的时候为了规避关键字,可以用``反引号解决 #删除数据库hsp_db01 drop database hsp_db01

element-ui使用el-date-picker日期组件常见场景

开始 最近一直在使用 element-ui中的日期组件。 所以想对日期组件常用的做一个简单的总结; 1.处理日期组件选择的时候面板联动问题 2.限制时间范围解除两个日期面板之间的联动 我们发现2个日期面板之间其实是有联动关系的; 开始时间面板和结束时间面板始终只能相邻; 不能出…

[鸟哥私房菜]4.首次登录与在线求助

第4章 首次登录与在线求助 4.1.3 X Window 与命令行模式的切换 通常我们称命令行界面为终端界面、Terminal 或 Console。Linux 默认的情况下会提供六个终端(Terminal)来让用户登录, 切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6] 的组合按钮。其中 [Ctrl] + [Alt] + [F1] 为…

20211317李卓桐 Exp6 MSF攻防实践 实验报告

Exp6 MSF攻防实践 实践内容本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成: 1.1一个主动攻击实践,尽量使用最新的类似漏洞; 1.2 一个针对浏览器的攻击,尽量使用最新的类似漏洞; 1.3 一个针对客户端的攻击,如Adobe或office,尽量使…

深入理解Django:中间件与信号处理的艺术

title: 深入理解Django:中间件与信号处理的艺术 date: 2024/5/9 18:41:21 updated: 2024/5/9 18:41:21 categories:后端开发tags:Django 中间件 信号 异步 性能 缓存 多语言引言 在当今的Web开发领域,Django以其强大的功能、简洁的代码结构和高度的可扩展性,已成为众多开发者…