在被杀一次之后,selenium服务器在所有进一步的启动时都会挂起,甚至没有尝试获取服务器端口。
重新启动修复了问题。以不同的用户身份运行也会使selenium再次启动,但在 进程被杀死后,它将不再起作用。
这是在VirtualBox VM中的Linux 2.6.32-5-amd64(debian squeeze)上。查看系统调用的日志working和when it's not时,某些组件似乎在套接字绑定之前锁定。 selenium log没有多大帮助。
输出也没有任何指示:
$ java -jar selenium-server-standalone-2.28.0.jar
Dec 27, 2012 5:41:35 PM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
17:41:35.703 INFO - Java: Sun Microsystems Inc. 14.0-b16
17:41:35.704 INFO - OS: Linux 2.6.32-5-amd64 amd64
17:41:35.737 INFO - v2.28.0, with Core v2.28.0. Built from revision 18309
17:41:35.867 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
17:41:35.868 INFO - Version Jetty/5.1.x
17:41:35.868 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
17:41:35.869 INFO - Started HttpContext[/selenium-server,/selenium-server]
17:41:35.869 INFO - Started HttpContext[/,/]
答案 0 :(得分:11)
这是一个Java问题;它的RNG不必要地从/dev/random
读取。在VM上,随机池是有限的,经常在一次或两次运行后耗尽。出于某种原因,selenium / Jetty初创公司的一部分要求提供有问题的RNG。要解决此问题,advise Java to use /dev/urandom
instead:
java -Djava.security.egd=file:/dev/./urandom \
-jar selenium-server-standalone-2.28.0.jar
工作正常。