通过命令退出“gnome-terminal”的所有实例

通过命令退出“gnome-terminal”的所有实例

这一半是“这对我有用”,一半是“业余项目”——我想知道是否可以通过发送命令来gnome-terminal退出程序的所有实例而不使用killall

本质上,我想编写一个脚本,将其放入我的 中$PATH,它会尝试退出所有打开的终端窗口,就像每个窗口上的关闭按钮都被单击一样,而不是终止。原因是我有一个糟糕的习惯,即同时打开许多终端窗口,而逐个浏览并退出它们很麻烦。只需输入exeunt(因为让我们面对现实,没有比“退出所有”更好的命令名称了)并让它们全部退出对我来说会更好。但是,我不想意外关闭仍在终端内运行的任何程序 - 我仍然希望看到任何“此终端中仍有进程在运行”提示,因此该命令是killall gnome-terminal不可能的。

我认为最理想的做法是使用命令行/bash 等同于右键单击 Dash 图标并按“退出”。这可能是一个略显不合常规的要求,但我很想知道这是否可行。

答案1

尽管它的名称是 ,killall(和kill)会SIGTERM向所有同名进程发送信号,但您也可以个性化使用开关发送的信号-s。因此,killall gnome-terminal您可以使用而不是 使用killall -s {signal} gnome-terminal

我还没弄清楚什么信号可以解释为点击关闭按钮但我的猜测是,这是一个 GUI 钩子触发了这种行为。在 gnome2 中,任务列表中有一个“全部关闭”选项,但在 gnome3 中似乎没有这个选项。

在对 U&L 进行了长时间的讨论之后

在...的帮助下空间光度测量WHO给了我灵感,您可以使用 在 gnome-terminal 的多个实例上模拟alt+组合键。您必须确保已使用以下方法安装:F4xdotool search --name terminal key --window %@ alt+F4xdotool

sudo apt-get install xdotool

但是,让我详细解释一下:

search搜索所有具有确定特征的窗口。--name开关将查找标题栏上具有内容的窗口。key告诉xdotool我们要使用键盘命令。--window告诉对命令使用确定的 ID key,如果未设置,它将%1从堆栈中使用。%@意味着使用所有 ID 堆栈。alt+F4告诉发送的组合键。

更多信息:

www.semicomplete.com/projects/xdotool/xdotool.xhtml

相关内容