4

Я пишу небольшой bash-скрипт, который открывает пару приложений (среди которых несколько окон chrome), ждет ввода и при правильном вводе снова закрывает все открытые приложения.

Для завершения приложений я нашел два разных способа: либо с помощью kill $PID либо с помощью wmctrl -c <WIN>

В моем случае открыто несколько окон Chrome (не только те, которые запускаются скриптом). Заголовок окна chrome меняется в зависимости от посещаемого URL, поэтому на мой взгляд использование wmctrl -c не очень полезно. Кроме того, если другое окно (например, экземпляр Firefox) имеет аналогичное наклонное окно, оно также будет закрыто.

Это приводит меня к команде kill . Но я не мог понять, как определить PID Chrome Window, который я хочу прекратить.

Я попробовал это:

pid=$(ps | grep chromium | cut -d " " -f1 | head -n1)
if [ -n "$pid" ]
    then
        echo "...Closing Chromium"
        kill -15 $pid
    else
        echo "...Chromium not found"
fi

но он закрывает все окна Chromium.

Есть идеи, как определить окно Chrome, которое я хочу убить?

2 ответа2

1

Попробуйте этот проект: http://chromix.smblott.org/

тогда вы сможете запустить что-то вроде этого:

chromix with https://www.facebook.com/ close
0

Руководство по bash гласит:

       $!      Expands to the process ID of the most recently executed background (asynchronous) command.

поэтому сохраняйте все нужные вам PID сразу после запуска процесса хромирования. Возможно, вот так:

chromium & job1=$!
echo job1=$job1
#...
kill $job1

в bash есть также массивы для списков PID ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .