我有一个bash脚本,可以安装和卸载一个设备,在其间执行一些读取操作.由于设备非常慢,脚本需要大约15秒才能完成(安装至少需要5-6秒).由于安装此设备可能会导致其他问题,我不希望此脚本被中断.
话虽如此,我可以正确处理SIGINT(Ctrl + c),但是当我尝试处理SIGTSTP(Ctrl + z)时,脚本会冻结.这意味着信号被捕获但处理程序不运行.
#!/bin/sh cleanup() { # Don't worry about unmounting yet. Just checking if trap works. echo "Quitting..." > /dev/tty exit 0 } trap 'cleanup' SIGTSTP ...
我手动必须将KILL信号发送到进程.知道为什么会发生这种情况以及如何解决这个问题吗?