Linux后台执行程序

https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html

http://www.jianshu.com/p/3246be7c9dde

https://linux.cn/article-7918-1.html


1、nohup
nohup 无疑是我们首先想到的办法。顾名思义,nohup 的用途就是让提交的命令忽略 hangup 信号。

nohup ping www.ibm.com &        ##输出内容会保存到当前目录下 nohup.out 文件中
nohup ping www.ibm.com  &>/dev/null &     ##丢掉输出内容

2、setsid

nohup 无疑能通过忽略 HUP 信号来使我们的进程避免中途被中断,但如果我们换个角度思考,如果我们的进程不属于接受 HUP 信号的终端的子进程,那么自然也就不会受到 HUP 信号的影响了。setsid 就能帮助我们做到这一点。

setsid ping www.ibm.com

3、&

这里还有一个关于 subshell 的小技巧。我们知道,将一个或多个命名包含在“()”中就能让这些命令在子 shell 中运行中,从而扩展出很多有趣的功能,我们现在要讨论的就是其中之一。

当我们将"&"也放入“()”内之后,我们就会发现所提交的作业并不在作业列表中,也就是说,是无法通过jobs来查看的。让我们来看看为什么这样就能躲过 HUP 信号的影响吧。

(ping www.ibm.com &)


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页