我通过 SSH 在 Linux 服务器上运行 Java 中的 Selenium webscraper,但浏览器在会话终止时崩溃,尽管有各种尝试指示程序在后台运行。具体来说,我使用了screen
, tmux
, nohup
, disown
, 和setsid
(如这里https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/),结果相似,但效果不佳。我想尝试一个 VNC 会话,但目前尚未在服务器上启用。
例如screen
:
- 我键入
screen
,运行程序,并产生正常输出 - 我用 分离屏幕
Ctrl+a+d
,继续产生正常输出 - 我结束了 SSH 会话。输出停止并且(在重新登录并返回屏幕会话后),我收到错误消息
Exiting due to channel error
Exiting due to channel error
Exiting due to channel error
Exiting due to channel error
Exception in thread "main" org.openqa.selenium.WebDriverException: Failed to decode response from marionette
我已经尝试了几次,所以它在结束 SSH 会话的确切时间崩溃并不是巧合。可能出了什么问题,我该如何尝试诊断问题?
系统信息:
OS: Red Hat Enterprise Linux, Linux 3.10.0-1127.10.1.el7.x86_64
Java: 1.8.0_252
Firefox version: Mozilla Firefox 78.3.1esr
Firefox boot options: "--marionette" "-headless" "-foreground" "-no-remote" "-profile"
Gecko driver version: 0.27.0
Selenium version: 3.141.59m revision e82be7d358
SSH client: MobaXTerm, personal version 10.4