Linux trap命令

来源:互联网 发布:html静态网页对学java 编辑:程序博客网 时间:2024/05/27 03:29

trap:是bash的内建命令,是对Linux系统信号的捕捉,首先介绍一下Linux 信号。

最常见的Linux系统信号

信号值描述1SIGHUP挂起进程2SIGINT终止进程3SIGQUIT停止进程9SIGKILL无条件终止进程15SIGTERM可能的话终止进程17SIGSTOP无条件停止进程,但不终止进程18SIGTSTP停止或暂停进程,但不终止进程19SIGCONT继续运行停止的进程更多的关于每一个信号的详细信息,可以参考man number signal页面来查看,number就是信号值

bash shell允许用键盘上的键组合生成两种基本的Linux信号,终止进程(Ctrl+C)和暂停进程(Ctrl+Z)

用trap命令来对Linux系统的信号进行捕捉,可以通过查看man builtin页面来搜索trap的帮助文档

命令格式:trap [-lp] commands signals commands为命令,signals表示需要捕捉的信号,如果有多个信号,用空格隔开

参数说明

  • -l:列出所有系统信号名字和对应的数字
  • -p:打印出系统上与每一个信号相关的命令

例子

1. 打印出系统上所有的信号

[clef@rhel6164 ~]$ trap -l 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR111) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+338) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+843) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+1348) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-758) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-263) SIGRTMAX-1  64) SIGRTMAX
2. 捕捉‘Ctrl+C'简单例子

[clef@rhel6164 test]$ cat trap.sh #捕捉到键盘输入'Ctrl+C'就会输出echo命令#!/bin/bashtrap "echo 'Sorry! I have trapped Ctrl+C'" SIGINT SIGTERMsleep 100

0 0
原创粉丝点击