在bash中,如何捕捉到程序自己退出的"event"?
In bash, how to catch the "event" that the program exits itself?
我有一个 bash 程序,它需要在每次终止时删除一个锁定文件。
bash 是在执行结束时退出还是在某个时候失败并以错误代码退出都没有关系,我想捕获此事件并在它实际终止之前做一些事情永远。
我读过 trap
,但如果 trap 是解决方案,我不明白应该给 trap 哪个信号才能捕获所有 "exits possibilities"。
陷阱是解决方案吗?如果没有,如何实现?
试试
trap 'cleanup' EXIT
开头,函数cleanup
:
function cleanup()
{
# Kill any lingering child processes
# kill -9 $(jobs -p) 2> /dev/null
kill -9 0 2> /dev/null
}
我有一个 bash 程序,它需要在每次终止时删除一个锁定文件。
bash 是在执行结束时退出还是在某个时候失败并以错误代码退出都没有关系,我想捕获此事件并在它实际终止之前做一些事情永远。
我读过 trap
,但如果 trap 是解决方案,我不明白应该给 trap 哪个信号才能捕获所有 "exits possibilities"。
陷阱是解决方案吗?如果没有,如何实现?
试试
trap 'cleanup' EXIT
开头,函数cleanup
:
function cleanup()
{
# Kill any lingering child processes
# kill -9 $(jobs -p) 2> /dev/null
kill -9 0 2> /dev/null
}