使用Ubuntu,我想为Ubuntu服务器创建一个shell脚本(bash),它将打开一个firefox实例,然后关闭那个特定实例的浏览器?
要打开firefox的一个实例,我可以写:
firefox www.example.com
我已经读过要搜索所有firefox实例,并关闭它们手动我可以写:
ps aux | grep firefox
pidof firefox
kill #process#
但是我有没有办法搜索我在开始时打开的特定实例的firefox?
答案 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}