Linux 学习1

上一篇 / 下一篇  2010-10-14 20:00:06 / 个人分类:开发

1./dev/null 2>&1
/usr/bin/**dcon.sh >/dev/null 2>&1
这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃.那么command >
file 2
>file command > file2>&1有什么不同的地方.
     首先~command > file 2>file的意思是将命令所产生的标准输出信息,和错误的输出信息送到file 中.command> file 2>file 这样的写法,stdoutstderr都直接送到file中, file会被打开两次,这样stdoutstderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.
     command >file 2>&1这条命令就将stdout直接送向file,stderr继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdoutstderr的内容.
    从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会用command > file 2>&1这样的写法.
 
2. NoHup
使用nohup让程序永远后台运行

Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:

/usr/local/mysql/bin/mysqld_safe --user=mysql &

但是假如我们很多程序并不象mysqld一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 & 结尾,但是如果终端关闭,那么程序也会被关闭。但是为了能够后台运行,那么我们就可以使用nohup这个命令,比如我们有个test.php需要在后台运行,并且希望在后台能够定期运行,那么就使用nohup:

nohup /root/test.php &

TAG:

 

评分:0

我来说两句

Open Toolbar