nohup命令详解
nohup
nohup 命令运⾏由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使⽤ nohup 命令运⾏后台中的程序。要运⾏后台中的 nohup 命令,添加 & ( 表⽰“and”的符号)到命令的尾部。
nohup 是 no hang up 的缩写,就是不挂断的意思,但没有后台运⾏,终端不能标准输⼊。
nohup命令:如果你正在运⾏⼀个进程,⽽且你觉得在退出帐户时该进程还不会结束,那么可以使⽤nohup命令。该命令可以在你退出帐户/关闭终端之后继续运⾏相应的进程。
在缺省情况下该作业的所有输出都被重定向到⼀个名为nohup.out的⽂件中。或者 > /dev/null 进⾏丢弃到⿊洞中
案例
1. nohup command > myout.file 2>&1 &
在上⾯的例⼦中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;
2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输⼊到myout.file⽂件中。
2. 0 22 * * * /usr/bin/python /home/pu/download_pdf/download_dfcf_pdf_to_oss.py >
/home/pu/download_pdf/download_dfcf_pdf_to_oss.log 2>&1
这是放在crontab中的定时任务,晚上22点时候怕这个任务,启动这个python的脚本,并把⽇志写在download_dfcf_pdf_to_oss.log⽂件中
nohup和&的区别
& : 指在后台运⾏
重定向过多是什么意思nohup : 不挂断的运⾏,注意并没有后台运⾏的功能,,就是指,⽤nohup运⾏命令可以使命令永久的执⾏下去,和⽤户终端没有关系,例如我们断开SSH连接都不会影响他的运⾏,注意了nohup没有后台运⾏的意思;&才是后台运⾏
&是指在后台运⾏,但当⽤户推出(挂起)的时候,命令⾃动也跟着退出
那么,我们可以巧妙的吧他们结合起来⽤就是
nohup COMMAND > /dev/null &
这样就能使命令永久的在后台执⾏
例如:
1. sh test.sh &
将sh test.sh任务放到后台 ,关闭xshell,对应的任务也跟着停⽌。
2. nohup sh test.sh
将sh test.sh任务放到后台,关闭标准输⼊,终端不再能够接收任何输⼊(标准输⼊),重定向标准输出和标准错误到当前⽬录下的nohup.out⽂件,即使关闭xshell退出当前session依然继续运⾏。
3. nohup sh test.sh  &
将sh test.sh任务放到后台,但是依然可以使⽤标准输⼊,终端能够接收任何输⼊,重定向标准输出和标准错误到当前⽬录下的nohup.out ⽂件,即使关闭xshell退出当前session依然继续运⾏。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。