• trap 的用法 /etc/init.d/rcS trap :1 2 3 24


    trap的用法

        2006-10-27 11:46:14

    在有些情况下,我们不希望自己的shell脚本在运行时刻被中断,比如说我们写得shell脚
    本设为某一用户的默认shell,使这一用户进入系统后只能作某一项工作,如数据库备份, 我
    们可不希望用户使用ctrl+C之类便进入到shell状态,做我们不希望做的事情。这便用到了信号
    处理。
    kill -l可以列出系统的信号名称,如下:
    -bash-3.00# 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   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
    -bash-3.00#
    通常我们需要忽略的信号有四个,即: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使其回复默认值。
    用stty -a可以列出中断信号与键盘的对应,分别执行上面的命令后,运行
    tail -f /etc/passwd, 然后尝试用键盘中断,试试两种情况(默认和忽略)下有何不同。
    更方便的是我们可以用在shell中用trap定义我们自己的信号处理程序,就象在c中用
    signal一样,
    如:trap “echo 'GO Away'” INT

  • 相关阅读:
    如何优雅地用MATLAB生成C语言从1打印到100再打印到1
    CentOS启动报错Failed to mount /sysroot解决方法
    JVM性能监控与调优篇
    Redis 配置文件详解(翻译版,不全,有时间继续更新)
    odoo五种Action详解
    odoo环境变量env(Environment)
    odooenvmodel
    odoo常用的函数
    HashMap简单实现
    xshell6提示“要继续使用此程序,您必须应用最新的更新或使用新版本”解决办法
  • 原文地址:https://www.cnblogs.com/leaven/p/1986275.html
Copyright © 2020-2023  润新知