Безголовый Firefox никогда не возвращается со скриншота при вызове из Tomcat - PullRequest
0 голосов
/ 07 ноября 2019

Я играю с Firefox, делая скриншоты в режиме без головы. Я вызываю firefox из веб-приложения в Tomcat 8 (запущенного в Ubuntu 18.04) со следующим кодом:

String command = "firefox --headless --screenshot /opt/foobar.png http://foo.bar; pkill firefox";
Process start = Runtime.getRuntime().exec(new String[]{"bash","-c", command});

BufferedReader reader = new BufferedReader(new InputStreamReader(start.getInputStream()));

String line;
while ((line = reader.readLine()) != null) {
    log.info(line);
}
int exitCode = start.waitFor();

Я получаю следующий вывод (такой же, как с getErrorStream()): *** You are running in headless mode., нопотом ничего не происходит. Firefox не возвращается и снимок экрана не создается.

Я знаю, что веб-приложение запускается пользователем tomcat, поэтому я создал каталог /var/lib/tomcat8/.cache с chmod 777 (только для тестирования!).

Если я позвоню firefox --headless --screenshot /opt/foobar.png http://foo.bar; pkill firefox в bash моего пользователя, Firefox создаст снимок экрана и вернется менее чем за секунду.

Есть идеи, почему Firefox не возвращается? Кажется, есть некоторые проблемы с разрешением, но так как Firefox ничего не выводит, трудно сказать. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 08 ноября 2019

Хитрость была в том, чтобы создать /var/lib/tomcat8/.mozilla и превратить его в tomcat8, также как в chmod 77.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...