大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家
另外其它专栏请关注:
锐捷数通实验:锐捷数通实验
网络工程师成长日志:网络工程师的成长日志
it自动化运维:IT自动化运维
目录
一 &后台运行
我们使用ping命令来验证后台运行,ping命令后面+&即可
ping www.baidu.com &
可见我们不管是使用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,标准错误输出)
“生活的方向无论你如何选择都会后悔,人总向往没经历过的生活”