RSelenium дает сбой при запуске cron под Linux - почему? - PullRequest
0 голосов
/ 01 мая 2019

Я написал робота в R для очистки данных с веб-сервера. Робот написан на R с использованием RSelenium. Я написал две версии, одна с отдельным селеном с использованием хрома, другая с использованием непосредственно фантомов. Обе версии прекрасно работают на сервере Linux (OpenSuSE), когда я запускаю их вручную. Однако оба сервера не работают, когда я запускаю их, используя cron В последнем случае я получаю такую ​​ошибку при попытке создать драйвер:

Порт сигналов Selenium Server = 4567 уже используется.

Порт в порядке и слушает, как и ожидалось. И это происходит только когда я запускаю скрипт через cron.

Можете ли вы намекнуть мне, что не так и как я могу это решить? Большое спасибо.

Я пробовал другие порты и многое другое. Я предполагаю, что проблема где-то во взаимодействиях cron-R-Rselenium. (Cron нормально работает на сервере с некоторыми другими моими более простыми скриптами на python, которые отбрасывают статические страницы.)

Это минимальный пример с фантомами.

library(RSelenium)
system("./phantomjs --webdriver 4567", wait = FALSE)
Sys.sleep(10)
driver <- rsDriver(browser = "phantomjs", port = 4567L)
remDr <- driver$client

Ошибка на линии driver <- rsDriver(browser = "phantomjs", port = 4567L) со следующим сообщением об ошибке:

Ошибка в wdman :: selenium (порт = порт, подробный = подробный, версия = версия,: Сигналы сервера Selenium port = 4567 уже используются. Вызовы: source ... withVisible -> eval -> eval -> rsDriver ->

Большое спасибо за любую помощь.

1 Ответ

0 голосов
/ 01 мая 2019

Попробуйте закрыть предыдущие соединения с одним из них:

remDr$close()

remDr$server$stop()

...