我试图在我的脚本陷阱中获取SIGSTOP CTRL Z信号.
当我的脚本执行时,如果我暂停执行,发送一个SIGSTOP signalCTRL Z,它需要删除我在其中创建的文件并终止执行.
我不明白为什么以下脚本不起作用.但是,更重要的是,正确的方法是什么?
#!/bin/bash
DIR="temp_folder"
trap "rm -r $DIR; kill -SIGINT $$" SIGSTP
if [ -d $DIR ]
then
rm -r $DIR
else
mkdir $DIR
fi
sleep 5
编辑:
SIGSTOP不能被捕获,但是SIGTSTP可以被捕获,并且根据我在searching on the internet之后的理解和下面的答案,使用CTRL Z发送信号时捕获是正确的.但是,当我在运行脚本时按CTRL Z它会卡住,这意味着无论后来发送什么信号,脚本都会无休止地执行.
有两个信号你无法捕获*,SIGKILL和SIGSTOP.使用另一个信号.
*:无需修改内核
IEEE standard:
Setting a trap for SIGKILL or SIGSTOP produces undefined results.