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

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

本文我们将详细介绍 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命令后台启动一个程序

如果想让程序在后台运行,可以加上 & 符号。但这样运行之后,程序就无影无踪了。想要让程序重新回到终端,可以使用 fg 命令。

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

使用nohup同时运行多个程序

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

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

终止跑在后台的进程

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

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

$kill -9 PID

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

$ ps aux | grep myScript.sh 

或者你使用 pgrep 命令也行。

接下来,再使用 kill 命令就可以终止该进程了。

$kill -9 14942

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

Linux nohup命令详解相关推荐

  1. nohup命令及其输出文件 linux nohup命令详解

    linux nohup命令详解 nohup命令及其输出文件  nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户/关闭终 ...

  2. linux mingetty 命令详解

    linux mingetty 命令详解 功能说明:精简版的getty. 语 法:mingetty [--long-hostname][--noclear][tty] 补充说明:mingetty适用于本 ...

  3. linux zip 命令详解

    功能说明:压缩文件.  语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期 ...

  4. linux zipinfo 命令详解

    linux zipinfo 命令详解 功能说明:列出压缩文件信息. 语 法:zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>] 补充说明:执行zi ...

  5. Linux chkconfig命令详解

    Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig:    ...

  6. linux uname 命令详解

    linux uname 命令详解 功能说明:显示系统信息. 语 法:uname [-amnrsv][--help][--version] 补充说明:uname可显示电脑以及操作系统的相关信息. 参 数 ...

  7. linux mread 命令详解

    linux mread 命令详解 功能说明:将MS-DOS文件复制到Linux/Unix的目录中. 语 法:mread [MS-DOS文件...][Linux文件或目录] 补充说明:mread为mto ...

  8. linux sort 命令详解

    linux sort 命令详解 sort命令的功能是对文件中的各行进行排序.sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的.实际上,sort命令可以被认为 ...

  9. linux arpwatch 命令详解

    linux arpwatch 命令详解 功能说明:监听网络上ARP的记录. 语 法:arpwatch [-d][-f<记录文件>][-i<接口>][-r<记录文件> ...

  10. linux awk命令详解,使用system来内嵌系统命令,批量github,批量批下载视频, awk合并两列...

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

最新文章

  1. 2019年春季学期第四周作业Compile Summarize
  2. java 6位日期 0001,当日期范围更改为从01-01-0001开始时,DimDate将不会加载
  3. 216位攻城狮送给程序猿的10个新年礼物
  4. php 自定义打印模板下载,PHP – 创建自定义模板系统?
  5. vep文件如何转换mp4_如何将m4v视频格式快速转换成mp4视频呢
  6. linux系统命令行方式复制文件
  7. 高逼格又实用的Linux命令:持续更新中
  8. oc语言中的构造方法
  9. php ci的session和php session,php及codeigniter使用session-cookie的方法(详解)
  10. 前端地图之色斑图渲染(数据为矢量数据)(二)——以leaflet为例
  11. VMware Fusion CentOS7 下载安装及手动配置静态IP
  12. Ubuntu下WPS中文字体显示问题
  13. 在64位win10中开启64位ie浏览器的方法(IE11)
  14. 浏览器事件:为什么会有捕获过程和冒泡过程?
  15. 乡村的野蛮生长|独秀日记
  16. ARMA模型结合PSO算法进行股票预测
  17. gb28181协议流媒体实现为rtp荷载ps流,将h264流打包成ps流。
  18. Flink on Yarn报错:Container released on a *lost* node
  19. Docker启动MySql时Exited (1) 8 seconds ago或者Error response from daemon: Container xx is not running的解决方法
  20. hash、MD5、SHA-1、CRC简介

热门文章

  1. axure sketch 对比_对比平台--Axure和Sketch之间的区别
  2. 中国统计年鉴(1978-2020年)
  3. 老男孩linux——36期学员
  4. 鼠标右键没有新建文件夹 右键没有新建选项怎办
  5. 黑域BreventAutoPatcher 打补丁出错 Java Runtime not eligible
  6. Subclipse与Subversive比较
  7. python爬虫东方财富网的股票资金流(以平安银行为例)
  8. DsoFramer-辛酸泪史
  9. IntelliJ IDEA Maven安装配置
  10. NB-IOT模块学习