歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> linux下的trap命令和SIGHUP信號量詳解(2)

linux下的trap命令和SIGHUP信號量詳解(2)

日期:2017/2/25 10:38:41   编辑:Linux教程
 三、附錄

  1、中斷按鍵

  不同的終端類型、Shell版本其中斷的按鍵是不同的,甚至還可以自定義,這可通過stty命令查詢:

  引用

  # stty -a

  speed 38400 baud; rows 30; columns 111; line = 0;

  intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; start = ^Q; stop = ^S;

  susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

  -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts

  -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel

  opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

  isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

  ^就是Ctrl的縮寫。

  2、信號詳情

  引用

  名稱 默認動作 說明

  SIGHUP 終止進程 終端線路掛斷

  SIGINT 終止進程 中斷進程

  SIGQUIT 建立CORE文件 終止進程,並且生成core文件

  SIGILL 建立CORE文件 非法指令

  SIGTRAP 建立CORE文件 跟蹤自陷

  SIGBUS 建立CORE文件 總線錯誤

  SIGSEGV 建立CORE文件 段非法錯誤

  SIGFPE 建立CORE文件 浮點異常

  SIGIOT 建立CORE文件 執行I/O自陷

  SIGKILL 終止進程 殺死進程

  SIGPIPE 終止進程 向一個沒有讀進程的管道寫數據

  SIGALarm 終止進程 計時器到時

  SIGTERM 終止進程 軟件終止信號

  SIGSTOP 停止進程 非終端來的停止信號

  SIGTSTP 停止進程 終端來的停止信號

  SIGCONT 忽略信號 繼續執行一個停止的進程

  SIGURG 忽略信號 I/O緊急信號

  SIGIO 忽略信號 描述符上可以進行I/O

  SIGCHLD 忽略信號 當子進程停止或退出時通知父進程

  SIGTTOU 停止進程 後台進程寫終端

  SIGTTIN 停止進程 後台進程讀終端

  SIGXGPU 終止進程 CPU時限超時

  SIGXFSZ 終止進程 文件長度過長

  SIGWINCH 忽略信號 窗口大小發生變化

  SIGPROF 終止進程 統計分布圖用計時器到時

  SIGUSR1 終止進程 用戶定義信號1

  SIGUSR2 終止進程 用戶定義信號2

  SIGVTALRM 終止進程 虛擬計時器到時

  1) SIGHUP 本信號在用戶終端連接(正常或非正常)結束時發出, 通常是在終端的控制進程結束時, 通知同一session內的各個作業, 這時它們與控制終端不再關聯.

  2) SIGINT 程序終止(interrupt)信號, 在用戶鍵入INTR字符(通常是Ctrl-C)時發出

  3) SIGQUIT 和SIGINT類似, 但由QUIT字符(通常是Ctrl-\)來控制. 進程在因收到SIGQUIT退出時會產生core文件, 在這個意義上類似於一個程序錯誤信號.

  4) SIGILL 執行了非法指令. 通常是因為可執行文件本身出現錯誤, 或者試圖執行數據段. 堆棧溢出時也有可能產生這個信號.

  5) SIGTRAP 由斷點指令或其它trap指令產生. 由debugger使用.

  6) SIGABRT 程序自己發現錯誤並調用abort時產生.

  7) SIGIOT 在PDP-11上由iot指令產生, 在其它機器上和SIGABRT一樣.

  8) SIGBUS 非法地址, 包括內存地址對齊(alignment)出錯. eg: 訪問一個四個字長的整數, 但其地址不是4的倍數.

  9) SIGFPE 在發生致命的算術運算錯誤時發出. 不僅包括浮點運算錯誤, 還包括溢出及除數為0等其它所有的算術的錯誤.

  10) SIGKILL 用來立即結束程序的運行. 本信號不能被阻塞, 處理和忽略.

  11) SIGUSR1 留給用戶使用

  12) SIGSEGV 試圖訪問未分配給自己的內存, 或試圖往沒有寫權限的內存地址寫數據.

  13) SIGUSR2 留給用戶使用

  14) SIGPIPE Broken pipe

  15) SIGALRM 時鐘定時信號, 計算的是實際的時間或時鐘時間. alarm函數使用該信號.

  16) SIGTERM 程序結束(terminate)信號, 與SIGKILL不同的是該信號可以被阻塞和處理. 通常用來要求程序自己正常退出. shell命令kill缺省產生這個信號.

  17) SIGCHLD 子進程結束時, 父進程會收到這個信號.

  18) SIGCONT 讓一個停止(stopped)的進程繼續執行. 本信號不能被阻塞. 可以用一個handler來讓程序在由stopped狀態變為繼續執行時完成特定的工作. 例如, 重新顯示提示符

Copyright © Linux教程網 All Rights Reserved