61、nohup简介

1、run a command immune(免除) to hangups

nohup Command [Arg...] [&]

nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。

    如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。

2、SIGHUP信号发送的情况

    SIGHUP会在以下3种情况下被发送给相应的进程:

终端关闭时,该信号被发送到session首进程以及作为job提交的进程(即用&符号提交的进程)。如:ssh到一台机器, 开个vim,当关闭这个ssh会话的时候,vim就会收到 SIGHUP

session首进程退出时,该信号被发送到该session中的前台进程组中的每一个进程

若父进程退出导致进程组成为孤儿进程组,且该进程组中有进程处于停止状态(收到SIGSTOPSIGTSTP信号),该信号会被发送到该进程组中的每一个进程。

    注意:SIGHUP被发给了session leader (shell),然后由session leader发给jobs

3、unix中进程组织结构为session,包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程。一个session可能会有一个session首进程,而一个session首进程可能会有一个控制终端。

    一个进程组可能会有一个进程组首进程。进程组首进程的进程ID与该进程组ID相等。与终端交互的进程是前台进程,否则便是后台进程

4、示例

1)nohup command > myout.file 2>&1 &

2)nohub ./me.sh > /dev/null 2>&1

5、守护进程,进行信号处理,使用command &后,也可以达到这个目的。

6、查看信号

man -k signal | grep list

kill -l

参考

1http://bbs.chinaunix.net/viewthread.php?tid=774709

http://linux.die.net/man/1/nohup

2http://baike.baidu.com/view/1839401.htm

3】 记述了一个操作nohup的细节

http://os.51cto.com/art/200912/172917.htm

4Catching signals

http://linux.die.net/Bash-Beginners-Guide/sect_12_01.html

5】 对sighup进行了很好地讨论

http://www.cnblogs.com/coldplayerest/archive/2011/08/14/2137777.html

6http://blog.csdn.net/lanmanck/article/details/6022044

原文地址:https://www.cnblogs.com/mydomain/p/2208724.html