你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Linux nohup命令的具体用法

[复制链接]
gaosmile 发布时间:2020-6-18 16:25
在工作中,我们很经常跑一个很重要的程序,有时候这个程序需要跑好几个小时,甚至需要几天,这个时候如果我们退出终端,或者网络不好连接中断,那么程序就会被中止。而这个情况肯定不是我们想看到的,我们希望即使终端关闭,程序依然可以在跑。
这时我们就可以使用 nohup 这个命令。
nohup 命令是英语词组 no hangup 的缩写,意思是不挂断,也就是指程序不退出。这个命令会使程序忽略 HUP 信号,保证程序能够正常进行。HUP 信号有些人可能比较陌生,它是在终端被中止的时候向它所关联的进程所发出的信号,进程收到这个信号后就会中止运行。所以如果你不希望进程被这个信号干掉的话,就可以忽略这个信号。而 nohup 命令做的就是这个事情。
本文我们将详细介绍 nohup 命令的具体用法。
nohup命令基本语法
nohup 命令的基本语法如下:
$ nohup command arguments% y% H: V# C$ Z- |! [1 I0 P/ _3 ^
或者:
$ nohup options2 b6 {8 H* O5 u  j& z/ e
如果你想要得到更多关于 nohup 的用法介绍,可以查看它的帮助页面:
$ nohup --help  _' R. ?: \6 @' b$ ~5 t; Z# E5 h5 t
如果你需要查看它的版本号,可以使用 --version 选项。
$ nohup --version1 k- Q! [* l; B. Q2 e
使用nohup命令启动一个程序
如果你需要运行一个程序,即使对应的 Shell 被退出后依然保持运行,可以这样使用 nohup 运行这个程序:
$ nohup command
% l1 \2 S' E5 Z3 Z" d
当这个程序进行起来之后,这个程序对应的 log 输出及其错误日志都将被记录在 nohup.out 文件里,这个文件一般位于家目录或者当前目录。
重定向程序的输出
如果我不想把程序的输出保存在家目录或者当前目录,我想保存在我指定的路径,并且自定义文件名,要怎么操作?这时我们就可以使用重定向操作 > 。
比如,我现在有个脚本 myScript.sh 我想把它的输出保存在家目录下的 output 目录下,文件名为 myOutput.txt ,可以这样运行:
$ nohup ./myScript.sh > ~/output/myOutput.txt
9 g6 N; ]- R: p/ @8 O3 {4 e2 ~4 [使用nohup命令后台启动一个程序
如果想让程序在后台运行,可以加上 & 符号。但这样运行之后,程序就无影无踪了。想要让程序重新回到终端,可以使用 fg 命令。
微信图片_20200618162341.jpg
这个命令的输出 log 将保存在 nohup.out 文件里,你可以使用 cat 或其它命令查看。第二行里 8699 这个数字代表这个命令对应的进程号,也就是 pid 。我们可以使用 ps 命令来找到这个进程。
使用nohup同时运行多个程序
如果你需要同时跑多个程序,没必要一个个运行,直接使用 && 符号即可。比如,你想同时跑 mkdir ,ping,ls 三个命令,可以这样运行:
$ nohup bash -c 'mkdir files &&9 f3 Q5 L: x5 e6 b* q. i8 |
ping -c 1 baidu.com && ls'> output.txt
, V* B1 Z/ N/ e! t: N& C
微信图片_20200618162344.jpg
终止跑在后台的进程
上面有提到,nohup 命令结合 & 符号可以使进程在后台运行,即使关闭了终端依然不受影响。这时,如果想要终止这个进程,要怎么操作呢?
最简单的当属 kill 命令,相信大家用过很多次了。
$kill -9 PID- K) |- K" A7 U* ?9 t# @4 z) G- y
那要如何找到进程对应的 pid 呢?我们可以使用 ps 命令。
$ ps aux | grep myScript.sh% c+ q7 W1 M* [$ N
微信图片_20200618162347.jpg
或者你使用 pgrep 命令也行。
微信图片_20200618162350.jpg
接下来,再使用 kill 命令就可以终止该进程了。
$kill -9 14942
, W" @5 c4 U! x3 l
收藏 评论1 发布时间:2020-6-18 16:25

举报

1个回答
wofei1314 回答时间:2020-6-18 19:09:48
Get & Mark ~

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版