nohup

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nohup相关的知识,希望对你有一定的参考价值。

nohup

nohup /usr/bin/perl /root/Personkeeper.pl > /dev/null &

nohup是永久执行

&是指在后台运行

就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行

&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出

那么,我们可以巧妙的吧他们结合起来用就是
nohup COMMAND &
这样就能使命令永久的在后台执行

举个例子nohup tail -f nohup.out
然后退出登录,再连接,用ps -ef 你会还能看到在运行
ps -ef
root      3457     1  0 18:20 ?        00:00:00 tail -f nohup.out

另外,nohup执行后,会产生日子文件,把命令的执行中的消息保存到这个文件中,一般在当前目录下,如果当前目录不可写,那么自动保存到执行这个命令的用户的home目录下,例如root的话就保存在/root/下






nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。 
该命令的一般形式为:nohup command & 

linux重定向:

0 标准输入

1 标准输出

2 标准错误信息输出 。用来指定需要重定向的标准输入或者输出。

eg:将某个程序的错误信息输出到log文件中: ./program 2 >log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。

        另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出

Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

eg:

>/dev/null 2>&1  == 1>/dev/null 2>/dev/null,默认情况下就是1,标准输出,所以一般都省略。而&符号。后面接的是必须的文件描述符。不能写成2>1 这样就成了标准错误重定向到文件名为1的文件中,而不是重定向标准错误到标准输出中。所以这里就是:标准输出重定向到了/dev/null,而标准错误又重定向到了标准输出,所以就成了标准输出和标准错误都重定向到了/dev/null。


2>&1 >/dev/null 

命令行的重定向什么的, 是在执行命令之前就准备好了的. 解释顺序从左至右依次进行, 2&>1 ,而1是屏幕, 所以标准错误重定向到屏幕, 再而 1>/dev/null , 即标准输出重定向到 /dev/null, 上述2>&1 >/dev/null 


&>/dev/null

// 这个就是,不管你是啥玩意儿文件描述符,通通重定向到/dev/nul











以上是关于nohup的主要内容,如果未能解决你的问题,请参考以下文章

nohup

nohup 详解

nohup 详解

nohup命令

nohup 详解

nohup 详解