[linux]linux命令的后台不挂断运行
2017-10-09 17:44
274 查看
[转自: http://blog.csdn.net/zjc/article/details/51484114]
command & 这是什么?
命令后面加上&符号,是干啥的? 是为了让命令转入后台运行,我们可以敲其他命令干别的事。
但是有个困扰,当command命令执行出output结果时候,还是会弹出来干扰我们。用这个办法command > output & 就能解决这个问题,它实现了把命令的输出结果重定向输出到output文件中。
但是还有个困扰,当command命令产生了错误输出时候,还是会弹出来干扰我们。用这个办法command > output 2 > error & 就能解决这个问题,它可以把错误输出重定向到error文件中。
command > output & 等同于 command 1 > output &, 把命令的输出重定向到output文件。
0: stdin 标准输入
1: stdout 标准输出
2: stderr 标准错误
有时候我们并不关心output和错误输出的结果,又不想让它们干扰我们,好了那就用这样的办法:
command > /dev/null 2 > /dev/null ,
command > /dev/null 2 > error ,
command > output 2 > /dev/null,其中/dev/null表示空设备,把内容重定向到空设备了,当然就等于该内容没有重定向,说明它不是我们关注的。
如果想把stdout和stderr都重定向到一个文件怎么办呢?
那就用到了2和1之间的重定向。2 > &1 ,用法: command 1 > output 2 > &1 &, 这里2>&1就是把标准错误重定向到标准输出了,标准输出最后重定向到output,那么command命令的stdout和stderr都统一输出到output 文件了。
既然stdout和stderr都重定向到output,那这样写不就好了: command > output 2 > output &。 其实这样是不行的,stdout和stderr的文件名一致的话会冲突。因此想要忽略stdout,stderr就用commad > /dev/null 2 > &1 &
但是使用command > output 2>&1 & 有个问题,那就是每次运行都会覆盖原来的内容,我们想要追加效果就用>>好了:
command >> output 2 >&1 &
另外,上面的命令在shell打开的情况下是没有问题的,如果shell关掉了进程就会结束(例如:关闭窗口,退出ssh登录),我们希望窗口关掉了但是命令还不停歇的执行,就需要加上nohup: nohup command >> output 2>&1 &
command & 这是什么?
命令后面加上&符号,是干啥的? 是为了让命令转入后台运行,我们可以敲其他命令干别的事。
但是有个困扰,当command命令执行出output结果时候,还是会弹出来干扰我们。用这个办法command > output & 就能解决这个问题,它实现了把命令的输出结果重定向输出到output文件中。
但是还有个困扰,当command命令产生了错误输出时候,还是会弹出来干扰我们。用这个办法command > output 2 > error & 就能解决这个问题,它可以把错误输出重定向到error文件中。
command > output & 等同于 command 1 > output &, 把命令的输出重定向到output文件。
0: stdin 标准输入
1: stdout 标准输出
2: stderr 标准错误
有时候我们并不关心output和错误输出的结果,又不想让它们干扰我们,好了那就用这样的办法:
command > /dev/null 2 > /dev/null ,
command > /dev/null 2 > error ,
command > output 2 > /dev/null,其中/dev/null表示空设备,把内容重定向到空设备了,当然就等于该内容没有重定向,说明它不是我们关注的。
如果想把stdout和stderr都重定向到一个文件怎么办呢?
那就用到了2和1之间的重定向。2 > &1 ,用法: command 1 > output 2 > &1 &, 这里2>&1就是把标准错误重定向到标准输出了,标准输出最后重定向到output,那么command命令的stdout和stderr都统一输出到output 文件了。
既然stdout和stderr都重定向到output,那这样写不就好了: command > output 2 > output &。 其实这样是不行的,stdout和stderr的文件名一致的话会冲突。因此想要忽略stdout,stderr就用commad > /dev/null 2 > &1 &
但是使用command > output 2>&1 & 有个问题,那就是每次运行都会覆盖原来的内容,我们想要追加效果就用>>好了:
command >> output 2 >&1 &
另外,上面的命令在shell打开的情况下是没有问题的,如果shell关掉了进程就会结束(例如:关闭窗口,退出ssh登录),我们希望窗口关掉了但是命令还不停歇的执行,就需要加上nohup: nohup command >> output 2>&1 &
相关文章推荐
- 如何让Linux后台运行命令或php
- linux命令后台运行[转]
- linux命令后台运行技巧整理(3)
- Linux后台运行命令详述
- linux进程的后台运行、查看、关闭等命令
- linux命令后台运行
- linux nohup命令实现退出终端后程序继续后台运行
- linux学习入门1——bash命令基本操作(linuxcast.net)(bash部分快捷键、uname、history、通配符、切换用户、作业管理(前台、后台运行,暂停等操作))
- linux 后台运行 程序 命令
- Linux的bg和fg命令后台运行程序
- linux命令后台运行
- Linux让程序后台运行命令之screen与nohup
- Linux执行shell脚本方式及区别&命令后台运行
- nohup命令在linux系统,控制jar包后台运行
- Linux后台运行命令详述
- 如何在后台运行 Linux 命令并且将进程脱离终端
- Linux下使Shell 命令脱离终端在后台运行
- linux命令后台运行技巧整理(2)
- linux nohup命令使程序在后台运行的方法
- Linux下使Shell 命令脱离终端在后台运行