码迷,mamicode.com
首页 > 系统相关 > 详细

linux后台运行&符号、nohup命令、输出重定向等使用方法

时间:2017-06-29 22:15:39      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:linux   后台运行   

列出若干种情形,便于这几个命令及参数的理解:

在命令最后加上&符号,表示让这个进程到后台去执行,这样立刻返回到提示符状态,我们可以接着做下面的事。如:command &

但此时如果这个进程有输出,还是会显示出来,这又会干扰到我们的shell窗口。所以可以考虑把标准输出重定向到某个文件去,如:command >output &

现在清净了。但有时我们会发现后台运行的进程出错了,我们希望把错误信息也保存起来。那就用到了linux中默认定义两个变量:1指标准输出;2指错误输出,所以写成这样:command 1>output 2>error & ,正常的输出在output文件里,错误的输出在error文件里。这里也等同于command >output 2>error &

有时候只想保留一种,另外一个既不输出又不保存,那就用到这个设备/dev/null,所以忽略错误输出:command 1>output 2>/dev/null & ;忽略标准输出:command 1>/dev/null 2>error &;忽略全部输出: command 1>/dev/null 2>/dev/null

1,2两种信息之间还可以进行重定向,所以这种:command 1>output 2>&1 & 表示错误输出也重定向回标准输出,即两种信息都保存到output里。那干嘛不写成command 1>output 2>output & 呢?答案是这样不行,别看都输出到/dev/null可以,但如果写成相同的文件名会导致冲突,所以如果想同时保留只能是上面的写法;同理:忽略全部输出还可以写成: command >/dev/null 2>&1 &

这样的文件输出,每次运行会覆盖现有的文件,如果我们希望追加而不是覆盖,那么就用>>符号,这样命令就是: command 1>>log 2>>error &

基本上参数的各种写法都在这里了,但有个问题。这种“后台”进程在shell一直打开的情况下是没有问题的,如果我们关了shell窗口甚至退出ssh登录或vnc登录,那么进程自动就结束了。所以如果想退出窗口乃至退出登录仍然保持程序运行,再加上nohup,形如:nohup command 1>output 2>&1 &

大概就这些情况了。

本文出自 “空空如也” 博客,谢绝转载!

linux后台运行&符号、nohup命令、输出重定向等使用方法

标签:linux   后台运行   

原文地址:http://6738767.blog.51cto.com/6728767/1943209

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!