讲师博文
linuxtrap脚本信号捕获命令的使用 来源 : 华清远见     2019-03-27

linux的信号,可以用于进程间通信,还可以用于系统向进程发送命令。比如当系统关机的时候,需要通知每一个进程做善后工作,系统会对每个进程发送SIGTERM信号。进程在收到信号之后就会做一些清理动作。你也可以手动发送一些信号,比如“Ctrl+C”会像指定的进程发送SIGINT信号,如果进程没有指定捕获信号动作,那就默认的动作就是挂掉。linux系统信号非常多,常见的信号有:

linux开发

在一个进程中,捕获信号需要用到注册信号函数signal,那么在一个shell脚本中如何去捕获信号,并处理信号呢?需要使用到linux提供的命令trap,trap的用法:

trap cmd sigVALUE

trap 动作 要捕获的信号

例如:trap “echo ‘I got signal INT’ ” SIGINT

在默认的情况下,对shell脚本发送Ctrl+C会导致脚本的退出,如果加上捕获命令,则直接捕获并做相应处理,处理动作是由你来指定的。

接下来我们写几个例子来演示如何使用。

例1:捕获信号并处理

linux开发

结果如下所示:

linux开发

例2: 还可以捕获 shell退出的消息

trap comand EXIT

linux开发

结果如下:

linux开发

扫码申领本地嵌入式教学实录全套视频及配套源码

上一篇:linux开发:linux内存加载动态库?

下一篇:Linux开发:echo命令详解

400-611-6270

Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5京公海网安备11010802025203号