Я играю с 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 ничего не выводит, трудно сказать. Любая помощь приветствуется!