Linux nohup命令详解

Linux nohup命令详解导读 在工作中 我们很经常跑一个很重要的程序 有时候这个程序需要跑好几个小时 甚至需要几天 这个时候如果我们退出终端 或者网络不好连接中断 那么程序就会被中止 而这个情况肯定不是我们想看到的 我们希望即使终端关闭 程序依然可以在跑 nohup 命令是英语词组 nohangup 的缩写 意思是不挂断 也就是指程序不退出 这个命令会使程序忽略 HUP 信号 保证程序能够正常进行 HUP 信号有些人可能比较陌生 它是在终端被中止的时候向它所关联的进程所发出的信号 进程收到这个信号后就会中止运行 所以

导读 在工作中,我们很经常跑一个很重要的程序,有时候这个程序需要跑好几个小时,甚至需要几天,这个时候如果我们退出终端,或者网络不好连接中断,那么程序就会被中止。而这个情况肯定不是我们想看到的,我们希望即使终端关闭,程序依然可以在跑。

nohup 命令是英语词组 no hangup 的缩写,意思是不挂断,也就是指程序不退出。这个命令会使程序忽略 HUP 信号,保证程序能够正常进行。HUP 信号有些人可能比较陌生,它是在终端被中止的时候向它所关联的进程所发出的信号,进程收到这个信号后就会中止运行。所以如果你不希望进程被这个信号干掉的话,就可以忽略这个信号。而 nohup 命令做的就是这个事情。

本文我们将详细介绍 nohup 命令的具体用法。

Linux nohup命令详解Linux nohup命令详解

nohup命令基本语法

nohup 命令的基本语法如下:

$ nohup command arguments 或 $ nohup options 

如果你想要得到更多关于 nohup 的用法介绍,可以查看它的帮助页面:

$ nohup --help 

使用nohup命令启动一个程序

如果你需要运行一个程序,即使对应的 Shell 被退出后依然保持运行,可以这样使用 nohup 运行这个程序:

$ nohup command 

当这个程序进行起来之后,这个程序对应的 log 输出及其错误日志都将被记录在 nohup.out 文件里,这个文件一般位于家目录或者当前目录。

重定向程序的输出

如果我不想把程序的输出保存在家目录或者当前目录,我想保存在我指定的路径,并且自定义文件名,要怎么操作?这时我们就可以使用重定向操作 > 。

比如,我现在有个脚本 myScript.sh 我想把它的输出保存在家目录下的 output 目录下,文件名为 myOutput.txt ,可以这样运行:

$ nohup ./myScript.sh > ~/output/myOutput.txt 

使用nohup命令后台启动一个程序

这个命令的输出 log 将保存在 nohup.out 文件里,你可以使用 cat 或其它命令查看。第二行里 8699 这个数字代表这个命令对应的进程号,也就是 pid 。我们可以使用 ps 命令来找到这个进程。

使用nohup同时运行多个程序

如果你需要同时跑多个程序,没必要一个个运行,直接使用 && 符号即可。比如,你想同时跑 mkdir ,ping,ls 三个命令,可以这样运行:

$ nohup bash -c 'mkdir files && ping -c 1 baidu.com && ls'> output.txt 

Linux nohup命令详解Linux nohup命令详解

终止跑在后台的进程

上面有提到,nohup 命令结合 & 符号可以使进程在后台运行,即使关闭了终端依然不受影响。这时,如果想要终止这个进程,要怎么操作呢?

最简单的当属 kill 命令,相信大家用过很多次了。

$kill -9 PID 

那要如何找到进程对应的 pid 呢?我们可以使用 ps 命令。

$ ps aux | grep myScript.sh 
$kill -9 14942 

原文地址:https://www.linuxprobe.com/linux-nohup.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175767.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:28
下一篇 2026年3月26日 下午11:28


相关推荐

  • 移位运算(无符号移位运算,有符号移位运算)

    移位运算(无符号移位运算,有符号移位运算)移位运算,所有移位以5和-5为例移位运算左移(<<)正数负数带符号右移(>>)(右移向前面补对应的符号位所对应的值(正数补0,负数补1))正数负数不带符号右移(>>>)(>>>为java独有语法)正数负数移位运算可以移位运算的类型有:iuint,int,lang等类型.我们本次使用int类型一个int类型占4个字节,共32位,带符号…

    2022年7月13日
    20
  • Pytest(17)运行未提交的git(pytest-picked)

    Pytest(17)运行未提交的git(pytest-picked)前言我们每天写完自动化用例后都会提交到git仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交git仓库的用例。pytest-picked插件可以

    2022年7月30日
    7
  • onclick 阻止冒泡

    onclick 阻止冒泡onclick delInfo event cancelBubble true

    2026年3月20日
    3
  • try catch 对性能影响

    try catch 对性能影响引言之前一直没有去研究trycatch的内部机制,只是一直停留在了感觉上,正好这周五开会交流学习的时候,有人提出了相关的问题。借着周末,正好研究一番。讨论的问题当时讨论的是这样的问题:比较下面两种trycatch写法,哪一种性能更好。for(inti=0;i<1000000;i++){try{Ma

    2022年6月16日
    58
  • 请说下封装 vue 组件的过程?_组件二次封装的必要性

    请说下封装 vue 组件的过程?_组件二次封装的必要性vue组件的定义●组件(Component)是Vue.js最强大的功能之一●组件可以扩展HTML元素,封装可重用代码●在较高层面上,组件是自定义元素,Vue.js的编译器为他添加特殊功能●有些情况下,组件也可以表现用is 特性进行了扩展的原生的HTML元素●所有的Vue组件同时也都是Vue实例,所以可以接受相同的选项对象(除了一些根级特有的选项),并提供相同的生命周…

    2026年3月3日
    4
  • 纯css3手机页面图标样式代码

    全部图标:http://hovertree.com/texiao/css/19/先看效果:或者点这里:http://hovertree.com/texiao/css/19/hoverkico.htm简

    2021年12月21日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号