UNIX学习笔记(八) 后台执行命令4 nohup命令

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

 

使用nohup命令提交作业
如果使用n o h u p命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为n o h u p . o u t的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1
在上面的例子中,输出被重定向到m y o u t . f i l e文件中。
让我们来看一个例子,验证一下在退出帐户后相应的作业是否能够继续运行。我们先提交一个名为p s 1的日志清除进程:

nohup ps1 &

[1] 179

nohup:appending output to “nohup.out”

现在退出该s h e l l,再重新登录,然后执行下面的命令:

ps x | grep ps1

179 ?     S N 0:01 sh /root/ps1

506 p2 s      0:00 grep ps1

我们看到,该脚本还在运行。如果系统不支持 ps x命令,使用ps -ef|grep ps1命令。

 

 

 

一次提交几个作业
如果希望一次提交几个命令,最好能够把它们写入到一个 s h e l l脚本文件中,并用n o h u p命
令来执行它。例如,下面的所有命令都用管道符号连接在一起;我们可以把这些命令存入一

 

个文件,并使该文件可执行。

cat /home/accounts/qtr_0499| /apps/bin/trials.awk |sort|lp

cat>quarterend

cat /homo/accounts/qtr+0499 | /apps/bin/trials.awk |sort|lp

<CTRL-D>

现在让它可执行:
$ chmod 744 quarterend
我们还将该脚本的所有输出都重定向到一个名为 q t r. o u t的文件中。

nohup ./quarterend > qtr.out 2>&1 &

[5] 182

posted @ 2011-08-07 00:45  kevinboy  阅读(448)  评论(0编辑  收藏  举报