【19】linux进阶——后台运行(&)和nohup命令

大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家

另外其它专栏请关注:

锐捷数通实验:锐捷数通实验

网络工程师成长日志:网络工程师成长日志

it自动化运维:it自动化运维

目录

一 &后台运行

二 nohup不挂断运行

 三 nohup+&命令结合使用


一 &后台运行

我们使用ping命令来验证后台运行,ping命令后面+&即可 

ping www.baidu.com &

扫描二维码关注公众号,回复: 14733791 查看本文章

 可见我们不管是使用ctrl+c还是输入其它命令都无法打断ping命令的日志输出,因为此时ping命令在后台运行,我们只能用kill阻断进程的方式来终止ping命令

二 nohup不挂断运行

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

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

我们继续用ping命令来验证

nohup ping www.baidu.com

 可以发现没有在控制台输出,而是出现了一段提示信息,nohup: ignoring input and appending output to ‘nohup.out’,它的意思是“nohup:忽略输入并将输出附加到“nohup.out”

 我们通过ll命令发现同级目录下出现了一个nohup.out文件

用tail -f  nohup.out命令可以发现ping命令输出的日志被重定向到了这个文件

但是你在控制台ctrl+c,照样能终止进程

 三 nohup+&命令结合使用

 nohup ping www.baidu.com &

可以看到在控制台输入ctrl+c也无法终止进程 

 只能通过kill进程的方式来终端ping命令的输出

以下命令非常常用,后台不挂断的将命令产生的日志重定向到指定文件

 `nohup ping www.baidu.com > /var/ping.log 2>&1 &

这里也是使用kill命令才能终止ping进程,2>&1是告诉bash到任何错误重定向到相同的文件。最后的&指示 bash 在后台运行此命令

2>&1 解释:

将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

  • 0 – stdin (standard input,标准输入)
  • 1 – stdout (standard output,标准输出)
  • 2 – stderr (standard error,标准错误输出)

 “生活的方向无论你如何选择都会后悔,人总向往没经历过的生活”

猜你喜欢

转载自blog.csdn.net/weixin_51338719/article/details/129982505