本机环境为ubuntu 14.04
以ping www.baidu.com为例:
1.程序的前台运行
ping www.baidu.com
可以看到,屏幕上输出了baidu返回的结果
2.实现程序后台的运行
nohup ping www.baidu.com &
运行此命令后,屏幕显示出进程号(如:[1] 13668),出现新的一行,并进入等待状态:
$ nohup: 忽略输入并把输出追加到"nohup.out"
此时,程序前台运行时的输出,默认从屏幕重定向到了当前路径下的nohup.out中。
ctrl+c强制结束或直接关闭此终端后,多次查看nohup.out,其内容是一直变化的。说明刚刚的那条命令已经成功在后台运行。
3.实现输出重定向
如果后台同时运行多个程序,它们的输出全都在nohup.out中,阅读起来很不方便。可通过重定向到不同文件中来解决这个问题。
linux启动后,会默认打开3个文件描述符,0表示标准输入,1表示正确输出,2表示错误输出。
nohup ping www.baidu.com 1>result.out 2>result.out & //将正确输出和错误输出均写入result.out文件
4.关闭示后台运行的进程
如果我们想关闭刚刚的后台运行的进程,又忘记了刚刚显示的进程号,可以用如下方法:
ps -e //显示所有后台运行的进程 ps -e | grep ping //显示所有带有ping的进程
找到对应的进程号,输入以下命令即可关闭进程
kill [进程号]
参考资料:
http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html