linuxtrap脚本信号捕获命令的使用

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

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

trap cmd sigVALUE

trap 动作 要捕获的信号

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

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

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

例1:捕获信号并处理

结果如下所示:

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

trap comand EXIT

结果如下:

对嵌入式物联网感兴趣的小伙伴,可以多了解一下相关信息。(看过来)

你可能感兴趣的:(linux,运维,服务器)