我已经编写了批处理文件来运行 Selenium Grid2 服务器并将节点注册到它,但是如何关闭服务器?
我无法杀死批处理进程,因为它们的 ID 只是“cmd.exe”,我不想杀死所有 cmd.exe,因为 cmd 上可能还有我需要的其他东西正在运行。
谢谢
我已经编写了批处理文件来运行 Selenium Grid2 服务器并将节点注册到它,但是如何关闭服务器?
我无法杀死批处理进程,因为它们的 ID 只是“cmd.exe”,我不想杀死所有 cmd.exe,因为 cmd 上可能还有我需要的其他东西正在运行。
谢谢
Selenium Grid2 服务器有一个生命周期管理器,您可以使用它来关闭它。
您可以通过访问此网址来激活它:
http://yourHubIP:4444/lifecycle-manager?action=shutdown
这将退出服务器,您可以使用wget之类的命令行工具来访问它。
wget --post-data action=shutdown action=shutdown http://localhost:4444/lifecycle-manager
此刻它没有任何动作,我查看了代码。这也不会优雅地关闭,所有正在运行的测试都会立即被终止。
我认为您可以通过指定 selenium 网格端口在这里得到答案。
cmd.exe 和 java 进程都存在运行在其中的不可识别子进程的相同问题。幸运的是,java 有一个解决方案,我们可以使用它。
我猜你java -jar selenium-server.jar
在你的批处理文件中使用了类似的东西。如果是,则 selenium 服务器作为 java 进程运行。所以没有必要杀死cmd.exe。相反,您必须识别运行 selenium 服务器的 java 进程。
为了识别 java 进程,请jps -l
在命令提示符下使用。'jps' 默认带有 jdk,它会告诉你正在运行的 selenium 服务器的进程 ID。你可以简单地杀死这个进程。
希望这能解决问题。
我可以建议您执行以下操作:
确保在您的域中创建一个唯一用户来启动服务器和节点。有了它,您实际上可以使用本Taskkill
机命令Windows OS
来终止cmd.exe
该用户已启动的所有实例。
几个月前,我在工作中遇到了这个问题(创建用户selenium-webdriver),使用它已被证明非常有用,因为我们最终得到了一个每天重启所有服务器和节点的例程。