Linux sh trap,在Linux中Shell脚本用Trap获取CTRL Z.

我试图在我的脚本陷阱中获取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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值