Macos 使OSX终端在关闭时发送SIGHUP
我试图调试为什么当我关闭tmux进程所在的终端时,tmux进程仍然认为它们是连接的,我认为我已经发现了部分问题;当我关闭终端窗口(CMD-W或单击左上角的红色小按钮)时,它不会向上发送信号!事实上,它只发送SIGEXIT。我用这个脚本发现了这个。其中一张海报给出的结果与他的OSX机器非常不同,但我的终端似乎不想玩得很好Macos 使OSX终端在关闭时发送SIGHUP,macos,terminal,signals,Macos,Terminal,Signals,我试图调试为什么当我关闭tmux进程所在的终端时,tmux进程仍然认为它们是连接的,我认为我已经发现了部分问题;当我关闭终端窗口(CMD-W或单击左上角的红色小按钮)时,它不会向上发送信号!事实上,它只发送SIGEXIT。我用这个脚本发现了这个。其中一张海报给出的结果与他的OSX机器非常不同,但我的终端似乎不想玩得很好 有人知道如何让OSX中的终端(我运行的是10.7.2)在退出时发送正确的信号吗?谢谢 那个脚本为我显示了SIGHUP和SIGEXIT。你用的是什么外壳?我不知道有什么方法可以防止
有人知道如何让OSX中的终端(我运行的是10.7.2)在退出时发送正确的信号吗?谢谢 那个脚本为我显示了SIGHUP和SIGEXIT。你用的是什么外壳?我不知道有什么方法可以防止Bash(默认shell)在终端关闭时接收SIGHUP,除非它以某种方式配置为忽略SIGHUP而不使用
trap
(或者在运行该脚本后,如果有什么东西使用trap
)。终端关闭pty,/usr/bin/login应向外壳发送SIGHUP;然后终端向外壳发送SIGH信号,等待几秒钟,然后发送SIGKILL。我想如果有几秒钟的延迟,它可能会在收到信号之前杀死Bash。但这不太可能。作为参考,@staticfloat在AskDifferent上问了本质上相同的问题:我在10.7.2的OSX上使用默认的Terminal.app,我已经删除了登录时运行的所有脚本(.profile、.bashrc、/etc/profile、/etc/bashrc),以尝试减少混淆的元素,但结果没有改变。