linux后台执行命令:&与nohup的用法

这篇具有很好参考价值的文章主要介绍了linux后台执行命令:&与nohup的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:电脑使用ssh工具远程连接服务器跑深度学习的时候,本地的终端叉掉的时候,会把服务器上的代码进程一起叉掉了,这在实际场景中,非常的不方便,因为不可避免会遭受不可抗拒的原因需要代码只在服务器上跑,比如,网络原因ssh连接不稳定,本地电脑断电等。

一.nohub使用

A.nohub运行

直接上最常用的命令:

nohup python -u main.py > log.file &

命令解释:

  • nohup就是不挂断的意思( no hang up)。
  • 【python main.py】是你原本运行程序的命令。
  • 【-u】 这个参数加在python的后面,是为了可以实时查看输出,而不用等把一段日志文件写入log.file后才能查看。
  • 【log.file】将输出保存到这个文件中。(如果仅仅如此使用nohup命令的话,程序的输出会默认重定向到一个nohup.out文件下。log.file是我们自己指定的输出文件。)
  • 在命令的末尾加个&符号后,程序就可以在后台运行了,但是一旦当前终端关闭(即退出当前帐户),该程序就会停止运行。
  • nohub是不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行。
  • 指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出。
  • 那么,我们可以巧妙的吧他们结合起来用就是nohup COMMAND &这样就能使命令永久的在后台执行。

运行完这条命令后,代码就会永久的在后台执行了。然后终端就会这里就会显示运行代码前的样子。但是注意,此时如果直接叉掉终端,服务器中的程序仍然会停止运行,解决方案就是在终端中输入exit断开ssh连接,这样可以叉掉终端。

B.实时查看输出的命令

在终端输入如下命令:

tail -f log.file

二.如何在linux下杀死nohup提交到后台运行的程序?

方法1:

  1. 如果还没有退出运行nohub命令的终端界面,可以先通过 “jobs” 命令查看程序是否在运行,此时只有序号没有PID号;
  2. 输入命令 “jobs -l” 会显示程序的PID号,然后通过 “kill -9 PID”杀死程序;
  3. 输入命令 “jobs” 查看程序是否被杀死。

方法2:

  1. 如果已经退出了nohub命令的终端界面,输入 “jobs” 命令则查不到正在运行的程序;
  2. 输入 “ps ux” 来查看所有程序的进程号PID,然后再通过 “kill -9 PID” 杀死程序;
  3. 输入 “ps ux” 来查看程序是否被杀死。

参考文章:文章来源地址https://www.toymoban.com/news/detail-683934.html

  1. https://blog.csdn.net/qq_38835492/article/details/80554774
  2. https://blog.csdn.net/hahameier/article/details/107325070
  3. https://blog.csdn.net/SanyHo/article/details/109522358

到了这里,关于linux后台执行命令:&与nohup的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos后台运行使用nohup命令

    nohup ./my_script.sh nohup命令运行后如何关闭 nohup 命令用于在用户注销系统后继续运行指定的命令。如果您想关闭使用 nohup 运行的进程,您可以使用 kill 命令。 首先,您需要找到 nohup 运行的进程的进程ID(PID)。可以使用 ps 或 pgrep 命令来查找。例如,如果您的命令是 nohup ./my

    2024年04月14日
    浏览(36)
  • 使用 Rust 实现连接远程 Linux 服务器、发送文件、执行命令

    Rust 已经听了无数遍,我很清楚它很强!但我也刚了解到它比较难学!那么加上 ChatGPT 呢?下面的代码就是在 ChatGPT 加持下写出来的,我只起到了辅助作用!只能说它们都很厉害! Rust(又称为 Rust programming language)是一种系统编程语言,主要用于开发底层系统和应用程序,如

    2024年02月13日
    浏览(65)
  • Tauri 提供界面 + 使用 Rust 实现连接远程 Linux 服务器、发送文件、执行命令

    Tauri 是一个用于构建跨平台桌面应用程序的工具和框架。它的目标是通过将 Web 技术与本地功能结合,使开发者能够以简单、高效的方式创建现代的桌面应用。 以下是 Tauri 的一些主要特点和概述: 跨平台支持 :Tauri 允许你构建跨平台的桌面应用程序,它支持 Windows、macOS 和

    2024年02月15日
    浏览(49)
  • 运维:mysql常用的服务器状态命令

    目录 1、查询当前服务器运行的进程 2、查询最大链接数 3、查询当前链接数 4、展示当前正在执行的sql语句 5、查询当前MySQL当中记录的慢查询条数 6、展示Mysql服务器从启动到现在持续运行的时间 7、查询数据库存储占用情况 8、查询服务器启动以来的执行查询的总次数 9、查询

    2024年02月08日
    浏览(48)
  • VMware vCenter服务器常用的巡检命令、运维命令和PowerShell脚本

    一、前言 最近整理一些VMware vCenter和Esxi常用的巡检命令和运维命令如下: 二、巡检命令 三、运维命令 运维常用命令: 四、Powershell脚本 以上就是vCenter和ESXi常用的运维与监控命令,可以帮助vSphere管理员管理和监控环境。

    2024年02月11日
    浏览(50)
  • 云服务器AccessKey执行命令

    人之所以痛苦,在于追求错误的东西。如果你不给自己烦恼,别人也永远不可能给你烦恼。因为你自己的内心,你放不下。 好好的管教你自己,不要管别人。 查看所有实例信息 执行命令 漏洞证明: 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传

    2024年02月15日
    浏览(31)
  • Linux nohup命令详解

    我们自己笔记本或台式机的显卡往往不能支持我们进行深度学习实验或大模型训练,因此我们往往使用SSH连接服务器然后去运行代码。 有的时候我们跑的程序需要跑几个小时甚至几天,这样我们就需要一直开着电脑挂着SSH;偶尔也会遇上网络断开,程序半途中止的情况。 所

    2024年03月12日
    浏览(40)
  • Linux nohup 命令详解

    nohup是Linux/Unix系统中非常有用的命令之一。它允许您在后台运行命令或脚本,并且在退出终端会话后仍然保持运行。这对于长时间运行的任务或进程非常有用,特别是当您需要离开终端但希望任务继续运行时。 nohup命令语法 nohup命令的基本语法如下: 您只需将要在后台运行的

    2024年02月14日
    浏览(44)
  • Linux:Nohup命令详解

    这是最简单的方式,也是 linux 新手们很容易搞混淆的一个经典问题: 请回答以上命令的异同…… 具体不一一解释了。直接说答案,想要维持一个长期后台运行的 logstash,你需要同时在命令前面加 nohup,后面加 。 nohup 不挂断的运行,注意并没有后台运行的功能就是指,用n

    2024年02月11日
    浏览(56)
  • Linux+服务器后台运行程序

    在Linux服务器直接运行程序,程序运行的时间较长,程序经常会因为网络连接问题异常终止,一直盯着程序运行又费时费力,这时后台运行程序是更好的解决方式。But,如果服务器重启了,那所有进程都断掉了,只能重新跑代码。 screen 假如遇到一些比较费时间的程序,但是又

    2024年02月22日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包