1. 程式人生 > >linux kill 命令 以及 USR1 訊號 解釋

linux kill 命令 以及 USR1 訊號 解釋

    USR1亦通常被用來告知應用程式過載配置檔案;例如,向Apache HTTP伺服器傳送一個USR1訊號將導致以下步驟的發生:停止接受新的連線,等待當前連線停止,重新載入配置檔案,重新開啟日誌檔案,重啟伺服器,從而實現相對平滑的不關機的更改。

kill -HUP pid 或者 killall -HUP pName: 其中pid是程序標識,pName是程序的名稱 如果想要更改配置而不需停止並重新啟動服務,可以使用上面兩個命令。在對配置檔案作必要的更改後,發出該命令以動態更新服務配置。 根據約定,當你傳送一個掛起訊號(訊號1或HUP)時,大多數伺服器程序(所有常用的程序)都會進行復位操作並重新載入它們的配置檔案。

kill -HUP pid 其中 pid 是程序標識。如果想要更改配置而不需停止並重新啟動服務,請使用該命令。在對配置檔案作必要的更改後,發出該命令以動態更新服務配置。

根據約定,當您傳送一個掛起訊號(訊號 1 或 HUP)時,大多數伺服器程序(所有常用的程序)都會進行復位操作並重新載入它們的配置檔案。以下例子詳細的講解一下用法。

eg1:

顯示了向所有正在執行的 Web 伺服器程序傳送掛起訊號的一種方法。

告訴 Web 伺服器重新載入其配置檔案並對檔案進行復位操作 [[email protected] httpd-2.2.13]# ps -A | grep httpd | grep -v grep | awk '{ print $1; }' | xargs -L 1 kill -HUP  上面的命令中包含了很多的操作,所以讓我們來仔細地看一下管道的每個部分。ps 和 grep 命令用來在所有的程序中搜索 httpd(並且忽略用來搜尋 httpd 程序的 grep 程序)。接下來,awk 只顯示輸出結果中的程序 ID,並將它傳遞給 xargs。然後,xargs 命令接受每個程序 ID(因為使用了 -L 1 以便一次提取一行內容),並使用kill -HUP 向相應的程序傳送一個掛起訊號。

eg2:

更改/etc/ssh/sshd_config,將裡面的Port改為新埠,比如28,然後 kill -HUP `cat /var/run/sshd.pid` 就行了。 現有連線自己不會斷,因為kill -HUP `cat /var/run/sshd.pid` 只是HUP監聽的那個,已經建立的連線(不同的 pid)不會斷。 然後你在現有賬號下面exit,在用新的埠登陸就可以了。

我需要的資訊是

【killall命令,和kill命令一樣,其作用是給指定的程序傳送一個訊號過去,不是平常所理解的僅僅是結束一個程序   SIGHUP(1):對於沒有那些不與終端互動的守護程序(Deamon Process),通常的設計是在接收到SIGHUP訊號之後就會重新讀取配置檔案。】