使用Ubuntu,我想为Ubuntu服务器创建一个shell脚本(bash),它将打开Firefox的一个示例,然后关闭浏览器的特定示例?要打开一个firefox示例,我可以这样写:
firefox www.example.com
我已经读到搜索所有Firefox示例,并关闭它们手动我可以写:
ps aux | grep firefox pidof firefox kill #process#
但是有没有办法让我搜索到我在开始时打开的firefox的特定示例示例?
oxalkeyp1#
您可以使用jobs来获取从该shell启动的所有正在运行的进程的ID(例如,在脚本中)
jobs
#!/bin/bash firefox www.example.com & PID=$(jobs -p) kill $PID
注意jobs列出了 * 所有从这个shell启动的进程 *,所以如果你使用这个方法并想杀死多个进程,你可能需要对jobs的输出做一些额外的解析来找到正确的进程。
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}
2条答案
按热度按时间oxalkeyp1#
您可以使用
jobs
来获取从该shell启动的所有正在运行的进程的ID(例如,在脚本中)注意
jobs
列出了 * 所有从这个shell启动的进程 *,所以如果你使用这个方法并想杀死多个进程,你可能需要对jobs
的输出做一些额外的解析来找到正确的进程。wf82jlnq2#
在后台启动进程,并记住它的pid。
如果你担心firefox退出,同时其他进程被分配了${PID},你可以将kill改为如下所示,以降低风险: