繁体   English   中英

如何在 bash 中创建一个“停止”脚本来关闭我之前使用不同的 bash 脚本打开的 gnome 终端选项卡?

[英]How do I make a "stop" script in bash that closes gnome-terminal tabs that I had previously opened with a different bash script?

我有一个名为 start.sh 的脚本:

#!/bin/bash

gnome-terminal --tab -- bash -c "./application1; bash"
gnome-terminal --tab -- bash -c "./application2; bash"
gnome-terminal --tab -- bash -c "./application3; bash"

此脚本在当前终端 window 中打开三个新选项卡,并在每个选项卡中运行一个独特的应用程序。

现在我想编写 stop.sh,它将终止三个应用程序进程,然后关闭它们在其中运行的三个选项卡。因此脚本中的前三个命令可能是:

pkill -9 application1
pkill -9 application2
pkill -9 application3

但是我该如何关闭之前在其他脚本中打开的 gnome-terminal 选项卡呢?

每个应用程序都有一个bash作为父进程,所以你也应该杀死父进程。

您可以使用ps命令找到父级:

APP1PID=`pgrep application1`
APP1PPID=`ps j $APP1PID | awk 'NR>1 {print $1}'`
kill -9 $APP1PPID

杀死父进程就足够了,它也会杀死所有的子进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM