Linux SignalsSignalsLinux Signals are:
As noted above, processes can ignore, block, or catch all signals except SIGSTOP and SIGKILL. If a process catches a signal, it means that it includes code that will take appropriate action when the signal is received. If the signal is not caught by the process, the kernel will take default action for the signal. FIFOsFIFOs are permanent objects and can be created using the mkfifo(1) or mknod(1) command. Inside the program, the FIFO can be created using the mknod command, then opened and read from or written to just like a normal file. The FIFO is normally in blocking mode when attempting to perform read operations. 引用自:http://www./os/linux/programming/linux_pgsignals.html 在終端使用kill -l 命令可以顯示所有的信號,。 其中前面31個信號為不可靠信號(非實時的,可能會出現(xiàn)信號的丟失),,后面的信號為可靠信號(實時的real_time,對信號 1) SIGHUP (掛起) 當運行進程的用戶注銷時通知該進程,,使進程終止 2) SIGINT (中斷) 當用戶按下時,通知前臺進程組終止進程 3) SIGQUIT (退出) 用戶按下或時通知進程,,使進程終止 4) SIGILL (非法指令) 執(zhí)行了非法指令,如可執(zhí)行文件本身出現(xiàn)錯誤,、試圖執(zhí)行數(shù)據(jù)段,、堆棧溢出 5) SIGTRAP 由斷點指令或其它trap指令產生. 由debugger使用 6) SIGABRT (異常中止) 調用abort函數(shù)生成的信號 7) SIGBUS 非法地址, 包括內存地址對齊(alignment)出錯. eg: 訪問一個四個字長的整數(shù), 但其地址不是4的倍數(shù). 8) SIGFPE (算術異常) 發(fā)生致命算術運算錯誤,包括浮點運算錯誤、溢出及除數(shù)為0. 9) SIGKILL (確認殺死) 當用戶通過kill -9命令向進程發(fā)送信號時,,可靠的終止進程 10) SIGUSR1 用戶使用 11) SIGSEGV (段越界) 當進程嘗試訪問不屬于自己的內存空間導致內存錯誤時,,終止進程 12) SIGUSR2 用戶使用 13) SIGPIPE 寫至無讀進程的管道, 或者Socket通信SOCT_STREAM的讀進程已經終止,而再寫入,。 14) SIGALRM (超時) alarm函數(shù)使用該信號,,時鐘定時器超時響應 15) SIGTERM (軟中斷) 使用不帶參數(shù)的kill命令時終止進程 17) SIGCHLD (子進程結束) 當子進程終止時通知父進程 18) SIGCONT (暫停進程繼續(xù)) 讓一個停止(stopped)的進程繼續(xù)執(zhí)行. 本信號不能被阻塞. 19) SIGSTOP (停止) 作業(yè)控制信號,暫停停止(stopped)進程的執(zhí)行. 本信號不能被阻塞, 處理或忽略. 20) SIGTSTP (暫停/停止) 交互式停止信號, Ctrl-Z 發(fā)出這個信號 21) SIGTTIN 當后臺作業(yè)要從用戶終端讀數(shù)據(jù)時, 終端驅動程序產生SIGTTIN信號 22) SIGTTOU 當后臺作業(yè)要往用戶終端寫數(shù)據(jù)時, 終端驅動程序產生SIGTTOU信號 23) SIGURG 有"緊急"數(shù)據(jù)或網絡上帶外數(shù)據(jù)到達socket時產生. 24) SIGXCPU 超過CPU時間資源限制. 這個限制可以由getrlimit/setrlimit來讀取/改變,。 25) SIGXFSZ 當進程企圖擴大文件以至于超過文件大小資源限制。 26) SIGVTALRM 虛擬時鐘信號. 類似于SIGALRM, 但是計算的是該進程占用的CPU時間. 27) SIGPROF (梗概時間超時) setitimer(2)函數(shù)設置的梗概統(tǒng)計間隔計時器(profiling interval timer) 28) SIGWINCH 窗口大小改變時發(fā)出. 29) SIGIO(異步I/O) 文件描述符準備就緒, 可以開始進行輸入/輸出操作. 30) SIGPWR 電源失效/重啟動 31) SIGSYS 非法的系統(tǒng)調用,。 在以上列出的信號中,, 此外,,SIGIO在SVR4是退出,,在4.3BSD中是忽略;SIGCONT在進程掛起時是繼續(xù),,否則是忽略,,不能被阻塞。 在Unix/Linux中signal函數(shù)是比較復雜的一個,其定義原型如下:
|
|
來自: happy123god > 《進程間通信》