Macos Bash-使用终端GUI终止脚本时执行清理代码;“关闭”;
我甚至不确定是否有办法做到这一点,因为我已经搜索了一整天,似乎我必须Macos Bash-使用终端GUI终止脚本时执行清理代码;“关闭”;,macos,bash,terminal,Macos,Bash,Terminal,我甚至不确定是否有办法做到这一点,因为我已经搜索了一整天,似乎我必须trap SIGKILL(我知道不能被trap)但是 使用SIGTERM和SIGINT,我让我当前的脚本执行清理操作,以便在按下Ctrl+C时恢复对硬盘的临时更改。那很好用。但是,如果我关闭终端窗口(通过单击红色交通灯),系统会询问我是否要终止当前正在运行的进程,但单击“关闭”似乎并没有实际终止脚本。我可以这么说,因为日志文件不断更新信息,脚本的其他部分仍在运行 所以我的问题是,当您关闭GUI窗口时,会向脚本发送什么信号(如果有
trap SIGKILL
(我知道不能被trap
)但是
使用SIGTERM和SIGINT,我让我当前的脚本执行清理操作,以便在按下Ctrl+C时恢复对硬盘的临时更改。那很好用。但是,如果我关闭终端窗口(通过单击红色交通灯),系统会询问我是否要终止当前正在运行的进程,但单击“关闭”似乎并没有实际终止脚本。我可以这么说,因为日志文件不断更新信息,脚本的其他部分仍在运行
所以我的问题是,当您关闭GUI窗口时,会向脚本发送什么信号(如果有)?如果没有或不可修补,如果GUI关闭或在下一次运行时终止上一个脚本,如何避免脚本运行?捕获脚本终止的常用方法是简单地使用保留字
EXIT
。例如:
trap "echo bye" EXIT
(不过,我没有OSX来测试特定的案例)