2

使用 Ubuntu,我想为 Ubuntu 服务器创建一个 shell 脚本 (bash),它将打开一个 firefox 实例,然后在浏览器中关闭特定实例?

要打开一个 Firefox 实例,我可以这样写:

firefox www.example.com

我已经阅读了搜索所有 firefox 实例并手动关闭它们的文章,我可以编写:

ps aux | grep firefox
pidof firefox
kill #process#

但是有没有办法让我搜索我在开始时打开的特定的 firefox 实例?

4

2 回答 2

2

您可以jobs用来获取从该 shell 启动的所有正在运行的进程的 ID(例如,在您的脚本中)

#!/bin/bash

firefox www.example.com &
PID=`jobs -p`

kill $PID

查看help jobs选项。请注意,jobs列出了从此 shell 启动的所有进程,因此如果您遵循这种方法并想要杀死多个进程,您可能需要对输出进行一些额外的解析jobs以找到正确的进程。

于 2012-10-16T08:16:11.220 回答
1

在后台启动进程,并记住它的 pid。

#!/bin/bash
firefox www.example.com &
declare -i PID=$!
# blah, blah, blah
kill ${PID}

如果您担心 firefox 退出并且同时分配了其他一些进程 ${PID} 您可以将 kill 更改为以下内容以降低风险:

ps -p ${PID} | fgrep firefox && kill ${PID}
于 2012-10-16T11:50:11.827 回答