使用bash打开和关闭进程

时间:2012-10-16 08:10:21

标签: bash firefox unix process kill

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

要打开firefox的一个实例,我可以写:

firefox www.example.com

我已经读过要搜索所有firefox实例,并关闭它们手动我可以写:

ps aux | grep firefox
pidof firefox
kill #process#

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

2 个答案:

答案 0 :(得分:1)

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

#!/bin/bash

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

kill $PID

有关选项,请参阅help jobs。请注意,jobs列出从此shell 开始的所有进程,因此如果您遵循此方法并希望终止多个进程,则可能需要对{{1}的输出执行一些额外的解析找到正确的过程。

答案 1 :(得分: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}