美文网首页
trap命令详解

trap命令详解

作者: 水平号 | 来源:发表于2020-03-04 17:39 被阅读0次

三种反应方式

trap捕捉到信号之后,可以有三种反应方式:

1,执行一段程序来处理这一信号
2, 接受信号的默认操作
3, 忽视这一信号

三种命令形式

trap对上面三种方式提供了三种基本形式:

# 第一种形式的trap命令在shell接收到signal list清单中数值相同的信号时,将执行双引号中的命令串。
trap 'commands' signal-list
trap "commands" signal-list
 
# 为了恢复信号的默认操作,使用第二种形式的trap命令:
trap signal-list
 
# 第三种形式的trap命令允许忽视信号
trap " " signal-list

忽略信号

通常我们需要忽略的信号有四个,即:HUP, INT, QUIT, TSTP,也就是信号1, 2, 3, 24使用这样的语句可以使这些中断信号被忽略:

trap "" 1 2 3 24 或 trap "" HUP INT QUIT TSTP

用trap :1 2 3 24 或 trap HUP INT QUIT TSTP使其回复默认值。

kill -l可以列出系统的信号名称,如下

shell> kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

用stty -a可以列出中断信号与键盘的对应,分别执行上面的命令后,运行 tail -f /etc/passwd, 然后尝试用键盘中断,试试两种情况(默认和忽略)下有何不同。

shell> stty -a
speed 38400 baud; rows 24; columns 94; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany
-imaxbel iutf8
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
image.png

相关文章

  • trap命令详解

    三种反应方式 trap捕捉到信号之后,可以有三种反应方式: 1,执行一段程序来处理这一信号2, 接受信号的默认操作...

  • bash 中冷门但非常有用的命令: trap

    trap 属于bash的内置命令,所以查看帮助用: help trap, 如果用”man trap“则会跳出bas...

  • 进程(七):trap 语句

    Bash 的内部命令 trap,让我们可以在 Shell 脚本内捕获特定的信号并对它们进行处理。 trap 命令的...

  • trap 命令

    我在通过七牛给的可执行文件进行推送文件到 cdn 的时候,发现总是命令行总是返回 1。 这里有个技巧 $? 可以输...

  • trap命令

    trap命令用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作。当shell接收到s...

  • Shell编程之trap命令

    title: Shell编程之trap命令tags: shell编程,trap 前序 今天看公司里面的一段代码,看...

  • Linux的trap命令

    文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Linux信号 Linux系统利...

  • top vmstat iostat glance

    TOP/Vmstat/iostat/Glance 命令详解 TOP命令详解 top命令和ps命令的基本作用是相同的...

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • Linux rpm命令详解

    Linux rpm命令详解 概述 : CentOS系统上rpm命令管理程序包命令详解 : 安装 卸载 升级 查询 ...

网友评论

      本文标题:trap命令详解

      本文链接:https://www.haomeiwen.com/subject/yiublhtx.html