让 gnome-terminal 在关闭前请求用户确认

让 gnome-terminal 在关闭前请求用户确认

当您在gnome-terminal没有任何选项的情况下打开并执行阻止命令(例如python3或),然后尝试通过关闭按钮(即标题栏中的按钮)或某些键盘快捷键关闭窗口时,会显示一个确认窗口vimcatx

在此处输入图片描述

但是,当您gnome-terminal使用指定的执行命令打开时,即以 的形式gnome-terminal -- python3,确认窗口将不再显示,并且在您(意外地)单击关闭按钮后窗口将立即关闭。

即使使用表单,是否也可以显示确认窗口gnome-terminal -- <command>?如果不可能,有什么解决方法吗?


环境:

$ gnome-terminal --version
# GNOME Terminal 3.36.2 using VTE 0.60.3 +BIDI +GNUTLS +ICU +SYSTEMD

我尝试过的:

  • 为执行的命令配备信号处理程序所有支持的信号不起作用;窗口仍然未经确认就关闭了,尽管进程在捕获SIGHUP(三次)、SIGCONT(一次)和SIGWINCH(一次)时幸存了下来。我必须另外执行kill -SIGKILL <process id>才能终止该进程。

  • 我发现了一个例外。执行时gnome-terminal -- bash,确认显示(尽管默认情况下与 相同gnome-terminal)。

答案1

GNOME 终端检查是否有由 shell 启动的前台进程(参见终端屏幕有前台进程功能)

您可以使用 sh 来创建新进程,并使用 gnome-terminal 在退出前进行询问,方法如下:

gnome-terminal -- sh -i -c python3

更新:使用自定义脚本可以通过 bash 实现相同的效果:

gnome-terminal -- bash -i my_script.sh

并且的内容my_script.sh只是

python3

相关内容