訊號的基本概念:
程序間常用的通訊手段:傳送訊號, kill..
sighup
訊號:通知, 事件通知, 用來通知某個程序發生了乙個事情
事件, 訊號都是突發的, 訊號是非同步發生的,也叫軟體中斷
訊號的產生:
a)某個程序傳送給另乙個程序或者傳送給自己
b)由核心傳送給某個程序
1)在鍵盤上輸入命令ctrl+c 中斷訊號, kill命令
2)記憶體訪問異常,除數為0, 硬體都會檢測到並且通知核心
訊號的名字:一般以sig開頭 例如:sighup(終端斷開訊號)
unix以及類unix作業系統:支援的訊號各不相同10-60個之間;
訊號既有名字, 也是一些數字, 訊號是一些正整數常量
#include(/usr/include)
gcc搜尋路徑:
標頭檔案, 包含路徑:/user/local/include/ /usr/include/
庫檔案, 連線路徑: /usr/local/lib/ /usr/lib
// sudo find / -name "signal" | xargs grep -in "sighup
根目錄 要找的東西 給其他命令傳參 忽略大小寫,顯示行號
用了xargs就是在「signal」內容中搜尋
kill : kill 程序id(他的工作是發個訊號給程序)可以給程序傳送多種訊號;
kill -1 程序id (1其實就是sighup)
程序的狀態:加上stat
ps -eo pid,ppid,sid,tty,pgrp,comm,stat | grep -e 'bash|pid|nginx'
訊號處理常見動作:
(1)執行系統預設動作, 絕大多數預設動作都是殺死這個程序
(2)忽略此訊號 sig_ing:signal(sighup, sig_ign);
(3)捕捉該訊號:寫個處理函式,訊號來的時候,用該函式進行處理
通訊架構學習 nginx 六 訊號集相關知識
訊號集 乙個程序必須能夠記住它當前阻塞了哪些訊號 0000001000000000000000 標誌位 我們需要被稱為訊號集的資料型別 能把60多個訊號都表示下。linux中用sigset t結構型別來表示訊號集 64位 typedef structsigset t 訊號集相關函式 a sigemp...
(C 通訊架構學習筆記) 守護程序及訊號處理實戰
目錄 守護程序功能的實現 訊號處理函式的進一步完善 ngx daemon 函式 int ngx daemon ngx parent ngx pid ngx pid getpid if setsid 1 umask 0 int fd open dev null o rdwr if fd 1 if du...
nginx學習筆記(二)訊號控制nginx
nginx學習筆記 二 訊號控制nginx int quit ps aux grep nginx或者ps ef hrep nginx檢視nginx的程序資訊,nginx master 主程序,管理子程序的 sudo kill int nginx master的程序號殺掉nginx程序 暴力 sudo...