@vitalysokolov

Почему Xvfb не завершает процесс?

Использую Selenium для скраппинга на сервере без gui. Эмулирую X-сервер c помощью pyvirtualdisplay (обёртки для Xvfb на python).
Перед тем, как открыть браузер, я создаю виртуальный дисплей; после того, как скраппинг завершён и браузер закрыт, я выключаю виртуальный дисплей. Парсер запускается каждые несколько минут. Проблема в том, что дисплей почему-то не завершает свою работу и через час у меня накапливается куча процессов Xvfb, которые сжирают всю процессорную мощность.
Помогите разобраться, что я делаю неправильно.
from pyvirtualdisplay import Display
...
# создаю виртуальный дисплей
display = Display(visible=0, size=(1920, 1080))
display.start()
...
# инициализирую браузер
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=1920x1080")

br = webdriver.Chrome(chrome_options=chrome_options,
                                executable_path=webdriver_path)
# делаю свои дела
br.get(url)
...
# закрываю браузер
br.close()
# закрываю дисплей
display.stop()
  • Вопрос задан
  • 300 просмотров
Пригласить эксперта
Ответы на вопрос 1
Oxyd
@Oxyd
Linux enthusiast
Завершайте скрипт либо такой конструкцией:
display.popen.terminate()
Либо такой:
display.popen.kill()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 11:14
65000 руб./за проект
19 апр. 2024, в 11:08
5000 руб./за проект
19 апр. 2024, в 10:59
150000 руб./за проект