unix 使用bash打开和关闭进程

4sup72z8  于 2023-04-20  发布在  Unix
关注(0)|答案(2)|浏览(124)

使用Ubuntu,我想为Ubuntu服务器创建一个shell脚本(bash),它将打开Firefox的一个示例,然后关闭浏览器的特定示例?
要打开一个firefox示例,我可以这样写:

firefox www.example.com

我已经读到搜索所有Firefox示例,并关闭它们手动我可以写:

ps aux | grep firefox
pidof firefox
kill #process#

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

oxalkeyp

oxalkeyp1#

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

#!/bin/bash

firefox www.example.com &
PID=$(jobs -p)

kill $PID

注意jobs列出了 * 所有从这个shell启动的进程 *,所以如果你使用这个方法并想杀死多个进程,你可能需要对jobs的输出做一些额外的解析来找到正确的进程。

wf82jlnq

wf82jlnq2#

在后台启动进程,并记住它的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}

相关问题