як переконатися в тому, що закрити правильне вікно Chromium з командної лінії Linux?


4

Я пишу невеликий сценарій bash, який відкриває пару додатків (кілька хромованих вікон серед інших), чекає на введення та з правильним входом знову закриває всі відкриті програми.

Для припинення застосувань я з’ясував два різні способи: або з, kill $PID або зwmctrl -c <WIN>

У моєму випадку відкрито декілька вікон з хрому (не тільки ті, які запущені сценарієм). Назва вікна chrome змінюється з відвіданою URL-адресою, тому в моїх очах використання wmctrl -cне дуже допомагає. Крім того, якщо інше вікно (наприклад, екземпляр Firefox) має подібний нахил вікна, воно також закриється.

Це веде мене до killкоманди. Але я не зміг зрозуміти, як визначити PID вікна Chrome, який я хочу скасувати.

Я спробував це:

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.

Будь-яка ідея, як визначити хромоване вікно, яке я хочу вбити?


4
Розглянемо, з допомогою pgrep -fякого можна визначити правильний процес / вікно.
kenorb

2
Chromeium.org/developers/design-documents/process-models , ви не можете закрити вкладку, вбиваючи процес. Процес представляє візуалізацію, що основний браузер використовує Execute і малює сторінку, яку потім копіює на екран
BlueBerry - Vignesh4303

Відповіді:


1

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

ви повинні мати можливість запустити щось подібне тоді:

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

Гм ... це здається досить розумним. Ви повинні описати програмне забезпечення, яке ви рекомендуєте; Відповіді лише для посилань можуть стати недійсними, якщо пов’язана сторінка зміниться або перейде в режим офлайн.
bwDraco

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 ...


Це я намагався, але, на жаль, не вийшло. Я думаю, що причина цього полягає в тому, що BlueBerry вже згадувався. Ви не можете закрити вкладку, вбивши процес. До сих пір мені вдалося вбити лише всі вікна Chrome, що коли-небудь створені чи взагалі не. Думаю, я спробую перейменувати вікно wmctrl -Tі побачити, чи зможу я закрити окремі вікна за допомогоюwmctrl -c
user430
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.