首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash脚本:无法正确处理SIGTSTP

Bash脚本:无法正确处理SIGTSTP
EN

Stack Overflow用户
提问于 2012-10-11 01:01:57
回答 1查看 2.2K关注 0票数 9

我有一个安装和卸载设备的bash脚本,它在两者之间执行一些读取操作。由于设备非常慢,脚本大约需要15秒才能完成(挂载至少需要5-6秒)。由于挂载此设备可能会导致其他问题,因此我不希望此脚本被中断。

话虽如此,我可以正确地处理SIGINT (Ctrl+c),但是当我尝试处理SIGTSTP (Ctrl+z)时,脚本就冻结了。

代码语言:javascript
复制
#!/bin/sh
cleanup()
{
    # Don't worry about unmounting yet. Just checking if trap works.
    echo "Quitting..." > /dev/tty
    exit 0
}
trap 'cleanup' SIGTSTP
...

你知道为什么会发生这种情况吗?我怎么才能修复它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-11 01:29:17

在当前执行的进程终止之前,外壳程序不会执行陷阱。(至少,这是bash 3.00.15的行为)。尝试用一个简单的read f替换...,注意陷阱会立即执行。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12824637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档