首頁 > linux教程 > Linux系統管理 閱讀:0更新時間:2020-03-28 01:04:59

Linux常用信號(進程間通信)及其含義

進程的管理主要是指進程的關閉與重啟。我們一般關閉或重啟軟件,都是關閉或重啟它的程序,而不是直接操作進程的。比如,要重啟 apache 服務,一般使用命令"service httpd restart"重啟 apache的程序。

那么,可以通過直接管理進程來關閉或重啟 apache 嗎?答案是肯定的,這時就要依賴進程的信號(Signal)了。我們需要給予該進程號,告訴進程我們想要讓它做什么。

系統中可以識別的信號較多,我們可以使用命令"kill -l"或"man 7 signal"來查詢。命令如下:

[root@localhost ~]#kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11)SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15)SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG
24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN +4 39) SIGRTMIN +5 40) SIGRTMIN+6 41)SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN +9 44) SIGRTMIN +10 45) SIGRTMIN+11 46) SIGRTMIN+1247) SIGRTMIN+13 48) SIGRTMIN +14 49) SIGRTMIN +15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX

這里介紹一下常見的進程信號,如表 1 所示。

表 1 常見的進程信號
信號代號 信號名稱 說 明
1 SIGHUP 該信號讓進程立即關閉.然后重新讀取配置文件之后重啟
2 SIGINT 程序中止信號,用于中止前臺進程。相當于輸出 Ctrl+C 快捷鍵
8 SIGFPE 在發生致命的算術運算錯誤時發出。不僅包括浮點運算錯誤,還包括溢出及除數為 0 等其他所有的算術運算錯誤
9 SIGKILL 用來立即結束程序的運行。本信號不能被阻塞、處理和忽略。般用于強制中止進程
14 SIGALRM 時鐘定時信號,計算的是實際的時間或時鐘時間。alarm 函數使用該信號
15 SIGTERM 正常結束進程的信號,kill 命令的默認信號。如果進程已經發生了問題,那么這 個信號是無法正常中止進程的,這時我們才會嘗試 SIGKILL 信號,也就是信號 9
18 SIGCONT 該信號可以讓暫停的進程恢復執行。本信號不能被阻斷
19 SIGSTOP 該信號可以暫停前臺進程,相當于輸入 Ctrl+Z 快捷鍵。本信號不能被阻斷

我們只介紹了常見的進程信號,其中最重要的就是 "1"、"9"、"15"這三個信號,我們只需要記住這三個信號即可。

關于如何把這些信號傳遞給進程,從而控制這個進程,這就需要使用 kill、killall 以及 pkill 命令了,我們會在后續章節中詳解介紹這 3 個命令。

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩