簡體   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