网络通信 频道

Linux 技巧:让进程在后台可靠运行的几种方法

  【IT168 专稿】nohup ---nohup 的用途就是让提交的命令忽略 hangup 信号。
  [root@RHEL5 ~]# nohup ping aix43 &
  [1] 5634
  [root@RHEL5 ~]# nohup: appending output to `nohup.out'
  [root@RHEL5 ~]# ps -ef | grep 5634
  root      5634  5551  0 11:23 pts/1    00:00:00 ping aix43
  root      5636  5551  0 11:23 pts/1    00:00:00 grep 5634

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

  [root@RHEL5 ~]# setsid ping aix43
  [root@RHEL5 ~]# ps -ef | grep ping
  root      5670     1  0 11:26 ?        00:00:00 ping aix43
  root      5708  5677  0 11:28 pts/1    00:00:00 grep ping
  & ---当我们将"&"也放入"()"内之后,我们就会发现所提交的作业并不在作业列表中,也就是说,是无法通过jobs来查看的。让我们来看看为什么这样就能躲过 HUP 信号的影响吧。

  [root@RHEL5 ~]# (ping aix43 &)
  [root@RHEL5 ~]# ps -ef | grep ping
  root      5761     1  0 11:35 ?        00:00:00 ping aix43
  root      5765  5728  0 11:36 pts/2    00:00:00 grep ping
  disown ---
 

0
相关文章