shell trap收到kill的命令,执行函数
时间: 2024-09-15 20:08:01 浏览: 28
在Shell脚本中,`trap`命令用于设置信号处理程序,当特定的信号(如`SIGINT`、`SIGTERM`等)发生时,会执行预先指定的函数。当你想要让一个shell脚本在接收到`kill`命令(通常表示用户希望终止进程)时运行特定的操作,可以使用`trap`来捕获`SIGTERM`信号。
例如,下面是一个简单的示例:
```bash
#!/bin/bash
# 定义当接收到SIGTERM信号时要执行的函数
my_function() {
echo "接收到 kill 命令,现在开始清理..."
# 这里可以添加你的清理操作,比如关闭文件、释放资源等
}
# 设置陷阱,当收到SIGTERM信号时执行my_function函数
trap 'my_function; exit' SIGTERM
# 开始你的脚本主体...
# ...
# 如果在此处收到kill命令(通常是Ctrl+C)
# 则my_function会被执行,然后脚本正常退出
```
当你在终端中发送`kill [pid]`到这个脚本的进程ID时,`my_function`函数就会被执行。注意,在实际使用中,你需要替换`my_function`里的内容以适应你的需求。