linux - 从 shell 脚本中杀死一组特定的进程
问题描述
我有一个运行另一个 java .jar 的 shell 脚本,它正在使用 chromedriver 运行一些自动化测试。有时它会在退出时打开 5 或 6 个 chrome 浏览器。*我目前正在解决这个问题,但我需要一个临时的快速解决方案
我需要一种方法来杀死这些进程而不影响不是由脚本启动的 chrome 窗口
我尝试了下面的,但它只是杀死了第一个进程
#!/bin/bash
while true
do
openchrome=$(pgrep chrome)
java -jar uploadv2.jar
pgrep chrome | grep -v $openchrome |xargs -r kill
解决方案
不确定这是否有效,但我认为这就是基于 Stephen P 的评论的样子。这假设 java 程序仅将 chrome 进程作为子进程生成,而没有其他进程。
#!/bin/bash
$openjava=""
while true
do
java -jar uploadv2.jar &
$openjava="$openjava $!" # List of all java programs running
# The $! gets the most recently spawned process id
for process in $openjava
do
childProc="$childProc `pgrep -P $process`" #get chrome processes spawned by java
done
for tab in childProc
do
kill $tab #kill the child processes (chrome tabs)
done
done
推荐阅读
- python - 如何使用python动态设置excel表的50列值
- tomcat - Tomcat: 403 The server understand the request but denied to authorize it after keycloak login 错误
- javascript - 创建自定义挂钩来检测浏览器
- python - 如何在全新 brew 安装之前检查我是否已删除所有 python3?
- jenkins - 如何在 JenkinsScript 中创建 placeHolder 字符串
- debugging - 如何调试我在 RISC-V 程序集中编写的阶乘函数?
- python - 不干净(强制)关闭对蜘蛛的工作有什么影响?
- python - 在 Pandas 数据框中为 B 列中的绝对数字在 A 列中分配相同的值
- ibm-cloud - 在 IBM Cloud 中托管的 Redis 缓存中读取包含大量数据的密钥时超时
- reactjs - 如何修复此警告“不建议在严格模式下使用 UNSAFE_componentWillReceiveProps,这可能表明您的代码中存在错误