我有一个运行另一个的外壳脚本,这个.jar运行一些自动化测试。有时它会让5到6个chrome浏览器在退出时处于打开状态。*我目前正在努力解决这个问题,但我需要一个tempory快速解决方案
我需要一种方法来杀死这些进程,而不影响铬窗口,不是由脚本启动
我尝试了下面的方法,但它只杀死了第一个进程
#!/bin/bash
while true
do
openchrome=$(pgrep chrome)
java -jar uploadv2.jar
pgrep chrome | grep -v $openchrome |xargs -r kill发布于 2018-07-28 02:00:20
我不确定这是否有效,但我认为这是基于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 https://stackoverflow.com/questions/51562034
复制相似问题