• Unix信號

    編輯
    本詞條由“匿名用戶” 建檔。

    使用Unix操作系統時,信號是發送給正在運行的進程的系統消息。信號是進程間通信的一種原始形式。大多數信號也會引起一個動作——通常是進程的終止。另一方面,其他人僅供參考(例如SIGWINCH)或可以停止進程(SIGSTOP)。還有一些信號可以由用戶自由使用(SIGUSR1和SIGUSR2)。一些信號可以被進程攔截或抑制。所以抓住z。例如,某些服務器程序(Unix術語中的“守護進程”)讀取SIGUSR...

    Unix信號

    編輯

    使用 Unix 操作系統時,信號是發送給正在運行的進程的系統消息。 信號是進程間通信的一種原始形式。 大多數信號也會引起一個動作——通常是進程的終止。 另一方面,其他人僅供參考(例如 SIGWINCH)或可以停止進程(SIGSTOP)。 還有一些信號可以由用戶自由使用(SIGUSR1 和 SIGUSR2)。 一些信號可以被進程攔截或抑制。 所以抓住z。 例如,某些服務器程序(Unix 術語中的“守護進程”)讀取 SIGUSR1 或 SIGUSR2,然后再次讀入它們的配置文件

    常見的 UNIX 信號

    編輯

    下面列出了常用信號及其編號。 支持的信號及其值可能因系統而異。 POSIX.1標準根據所使用的硬件架構提供不同的數值。

    前綴 SIG 是信號的縮寫。

    kill -l 命令通常會列出所有支持的信號編號及其相關名稱。 下表包含以下值作為示例:

    • A 列:GNU C 庫
    • B 列:Linux、Alpha 和 SPARC 架構
    • C 列:Linux、x86、AMD64、ARM 和大多數其他處理器架構
    • D 列:Linux、MIPS

    除了通常的 31 個信號編號外,較新的 Linux 版本還使用多達 32 個附加信號作為實時信號:從 SIGRTMIN、33、34 或 35(取決于 C 庫)到 SIGRTMAX (64)。

    動作

    編輯

    信號可以觸發以下操作之一:

    • 停止(不是終止)進程。
    • 恢復之前掛起的進程。
    • 在不轉儲的情況下結束進程。 父進程可以確定信號編號。 該數字包含在 wait、waitpid 等函數的結果中。
    • 通過寫入內存轉儲結束進程。

    在許多系統上,可以限制轉儲(例如在 bash 中通過 ulimit -c)。信號編號包含在轉儲中。 父進程可以像退出一樣不轉儲得到信號號。

    • 忽略信號。
    • 調用一個子程序(信號處理器)來處理信號,這叫做攔截。 信號處理程序必須在發出信號之前由進程設置。 信號處理程序在進程內運行,可以訪問進程的數據

    除了最后一個動作(信號處理程序)外,這些動作都顯示為標準(默認)動作。

    Unix信號

    改變動作

    編輯

    除了 SIGKILL 和 SIGSTOP 信號外,對信號的反應可以由進程設置。 這有幾種可能性。 一種方法是在 System V 和 ANSI C 中通過信號函數實現的。這個函數可以從許多程序環境中訪問,例如陷阱在通常的 shell 或 Python 編程語言中同名模塊中的函數信號中。 此外,Berkeley Software Distribution (BSD) 中有一些選項可以阻止信號并稍后處理它們(sigvec 等)。 還有 POSIX 標準 (sigaction)。

    信號由一個簡單的數據類型表示,即數字,通常指定為符號常量。 筆譯員或口譯員確定符號的編號。 這允許將程序移植到其他 (Unix) 平臺而無需更改符號。 POSIX 為不同的硬件平臺指定了不同的信號編號。 信號編號由 signal.h、signal.py 等文件已知。

    信號處理程序是一個簡單的函數,它將信號編號作為參數。 BSD 和 POSIX 有額外的參數。 信號處理程序可以在程序中設置變量并調用函數(例如退出以結束進程)。

    作為信號處理程序,上述函數知道特殊的符號常量:

    • SIG_DFL 設置信號的正常默認操作。
    • SIG_IGN 導致信號被忽略。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/366169/

    (5)
    詞條目錄
    1. Unix信號
    2. 常見的 UNIX 信號
    3. 動作
    4. 改變動作

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久