成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

講述Linux HUP信號的干擾問題

運維 系統運維
我們知道,當用戶注銷(logout)或者網絡斷開時,終端會收到Linux HUP信號(hangup)信號從而關閉其所有子進程。因此,我們的解決辦法就有兩種途徑:要么讓進程忽略Linux HUP信號,要么讓進程運行在新的會話里從而成為不屬于此終端的子進程。

在向大家詳細介紹Linux HUP信號之前,首先讓大家了解下Linux HUP信號,然后全面介紹Linux服務器X,希望對大家有用。想讓進程在斷開連接后依然保持運行?如果該進程已經開始運行了該如何補救? 如果有大量這類需求如何簡化操作?

我們經常會碰到這樣的問題,用 telnet/ssh 登錄了遠程的 Linux服務器,運行了一些耗時較長的任務, 結果卻由于網絡的不穩定導致任務中途失敗。如何讓命令提交后不受本地關閉終端窗口/網絡斷開連接的干擾呢?下面舉了一些例子, 您可以針對不同的場景選擇不同的方式來處理這個問題。

場景:
如果只是臨時有一個命令需要長時間運行,什么方法能最簡便的保證它在后臺穩定運行呢?

hangup 名稱的來由

在 Unix 的早期版本中,每個終端都會通過 modem 和系統通訊。當用戶 logout 時,modem 就會掛斷(hang up)電話。 同理,當 modem 斷開連接時,就會給終端發送 hangup 信號來通知其關閉所有子進程。 
 
解決方法:
我們知道,當用戶注銷(logout)或者網絡斷開時,終端會收到Linux HUP信號(hangup)信號從而關閉其所有子進程。因此,我們的解決辦法就有兩種途徑:要么讓進程忽略Linux HUP信號,要么讓進程運行在新的會話里從而成為不屬于此終端的子進程。

1. nohup
nohup 無疑是我們首先想到的辦法。顧名思義,nohup 的用途就是讓提交的命令忽略 hangup 信號。讓我們先來看一下 nohup 的幫助信息:
nohup(1)  User Commands  nohup(1)
nohup - run a command immune to hangups, with output to a non-tty
SYNOPSIS
nohup COMMAND [ARG]...
nohup OPTION
DESCRIPTION
Run COMMAND, ignoring hangup signals.
--help display this help and exit
--version
output version information and exit 

可見,nohup 的使用是十分方便的,只需在要處理的命令前加上 nohup 即可,標準輸出和標準錯誤缺省會被重定向到 nohup.out 文件中。一般我們可在結尾加上"&"來將命令同時放入后臺運行,也可用">filename 2>&1"來更改缺省的重定向文件名。

nohup 示例
               
[root@pvcent107 ~]# nohup ping www.ibm.com &
[1] 3059
nohup: appending output to `nohup.out'
[root@pvcent107 ~]# ps -ef |grep 3059
root      3059   984  0 21:06 pts/3    00:00:00 ping www.ibm.com
root      3067   984  0 21:06 pts/3    00:00:00 grep 3059
[root@pvcent107 ~]#  

2。setsid
nohup無疑能通過忽略Linux HUP信號 信號來使我們的進程避免中途被中斷,但如果我們換個角度思考,如果我們的進程不屬于接受Linux HUP信號的終端的子進程,那么自然也就不會受到Linux HUP信號的影響了。setsid 就能幫助我們做到這一點。讓我們先來看一下 setsid 的幫助信息:

SETSID(8)  Linux Programmer’s Manual SETSID(8)
setsid - run a program in a new session
SYNOPSIS setsid program [ arg ... ]
DESCRIPTION setsid runs a program in a new session. 
可見 setsid 的使用也是非常方便的,也只需在要處理的命令前加上 setsid 即可。

setsid 示例

[root@pvcent107 ~]# setsid ping www.ibm.com
[root@pvcent107 ~]# ps -ef |grep www.ibm.com
root     31094     1  0 07:28 ?        00:00:00 ping www.ibm.com
root     31102 29217  0 07:29 pts/4    00:00:00 grep www.ibm.com
[root@pvcent107 ~]#   
值得注意的是,上例中我們的進程 ID(PID)為31094,而它的父 ID(PPID)為1(即為 init 進程 ID),并不是當前終端的進程 ID。請將此例與nohup 例中的父 ID 做比較。

3。&
這里還有一個關于 subshell 的小技巧。我們知道,將一個或多個命名包含在“()”中就能讓這些命令在子 shell 中運行中,從而擴展出很多有趣的功能,我們現在要討論的就是其中之一。
當我們將"&"也放入“()”內之后,我們就會發現所提交的作業并不在作業列表中,也就是說,是無法通過jobs來查看的。讓我們來看看為什么這樣就能躲過Linux HUP信號的影響吧。

subshell 示例
               
[root@pvcent107 ~]# (ping www.ibm.com &)
[root@pvcent107 ~]# ps -ef |grep www.ibm.com
root     16270     1  0 14:13 pts/4    00:00:00 ping www.ibm.com
root     16278 15362  0 14:13 pts/4    00:00:00 grep www.ibm.com
[root@pvcent107 ~]#   
從上例中可以看出,新提交的進程的父 ID(PPID)為1(init 進程的 PID),并不是當前終端的進程 ID。因此并不屬于當前終端的子進程,從而也就不會受到當前終端的Linux HUP信號的影響了。

【編輯推薦】

  1. 命令手冊:Linux中的ipvsadm命令
  2. 今天你預裝Linux桌面系統了么?
  3. Linux中NMAP工具的強大功能
  4. 詳解保護Linux服務器七步驟
  5. 詳細介紹Linux進行C編譯
責任編輯:佚名 來源: CSDN
相關推薦

2011-01-11 14:11:57

inSSIDer無線網絡無線信號抗干擾

2010-09-06 10:11:44

無線信號

2009-11-24 13:53:03

SuSE Linux

2011-06-13 10:33:01

LTE網絡GPS

2010-03-10 14:04:35

Linux端口安全

2009-10-20 10:15:01

Linux用戶管理

2009-11-23 15:57:05

SUSE Linux超

2009-12-17 17:19:45

Linux系統

2009-12-18 16:44:57

ADO.NET統計

2010-03-10 17:37:48

Linux磁盤配額

2009-10-26 10:24:35

linux脫機打印命令

2009-10-20 09:19:11

Linux kill命

2009-12-24 13:46:23

Linux驅動

2010-03-18 17:29:21

2009-11-24 11:35:59

2009-10-23 19:11:32

linux集群

2009-12-24 09:47:17

Linux之父

2009-12-18 15:28:19

Linux內核

2013-04-26 16:52:11

能量脈沖無線網絡信號干擾

2012-04-11 09:26:13

內核Linux 開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美久久一级特黄毛片 | 国产一级电影在线观看 | 久在线| 日韩一级黄色毛片 | 精品在线观看一区 | 中文字幕一区二区三 | 四虎在线视频 | 国产三区在线观看视频 | 日韩影音 | 日日摸夜夜添夜夜添精品视频 | 超碰电影 | 国产欧美一区二区三区国产幕精品 | 日本精品视频一区二区三区四区 | 国产亚洲二区 | 色网站视频| 狠狠干综合视频 | 日日夜夜精品免费视频 | 色爱综合网 | 日日干天天干 | 中文字幕综合 | 亚洲网站在线观看 | 午夜免费影视 | 天天干视频在线 | 久久精品—区二区三区 | 91视视频在线观看入口直接观看 | 日韩欧美专区 | 免费精品 | 久久久久国产一区二区三区四区 | 午夜视频在线免费观看 | 日本久久网站 | 56pao在线 | 狠狠狠色丁香婷婷综合久久五月 | 国产中文字幕亚洲 | 亚洲欧美成人影院 | 国产成人精品一区二区三区在线 | 日韩中文字幕在线观看视频 | 欧美日韩亚洲视频 | 蜜臀久久99精品久久久久久宅男 | 国产精品毛片一区二区在线看 | 欧美日韩一区在线播放 | 精品久久久一区 |