在谷歌云上运行 nohup 后 Chromedriver 关闭

Posted

技术标签:

【中文标题】在谷歌云上运行 nohup 后 Chromedriver 关闭【英文标题】:Chromedriver closes after running nohup on google cloud 【发布时间】:2021-04-08 19:39:38 【问题描述】:

我有一个使用selenium 和chromedriver 的简单脚本。我已经安装了铬。当我使用命令nohup python3.7 -u main.py & tail -f nohup.out 运行脚本时,一切正常;脚本可以正常工作。当我关闭google cloud ssh 的窗口时,脚本停止工作。当我重新打开 ssh 并调用 tail -f nohup.out 时,我收到这样的错误

selenium.common.exceptions.WebDriverException: Message: chrome not reachable
  (Session info: headless chrome=75.0.3770.142)

我使用的是 chrome 版本 87 并且读到降级它应该会有所帮助,所以我将它降级到 75。 在ubuntu上运行,chrome和chromedriver的版本都是75。有没有这样的命令会在关闭ssh窗口后让chromedriver不关闭?

【问题讨论】:

是 --no-sandbox ,并且 --disable-gpu 也设置了? 确保设置了这些标志 cloud.google.com/solutions/… 您最终找到解决方案了吗?我有完全相同的问题。 @cakelover 是的,改用screen 【参考方案1】:

您可以在 Linux 的后台启动进程。即使您注销它们也会继续运行(本质上是关闭 SSH 窗口)。

有几种方法:

    使用bg & disown - 如here 所述 使用screen,如here 所述

您可以浏览整个帖子以获得更多想法。我建议使用 bgdisown - 它在 GCP 提供的 Ubuntu 上运行良好,但是您可以尝试各种解决方案并选择最适合您需求的解决方案。

根据我的经验 - 我在很多事情上都使用了 screen - 包括 virtualbox 并且它有效 - 如果您希望许多进程在后台运行,这可能会更麻烦,但如果这只是其中一个则非常简单。

安装屏幕:sudo apt install screen,用screen运行它并将其视为另一个屏幕,运行任何你想要的然后只需按ctrl + ad,你将回到“原始”贝壳。如果您想恢复您的屏幕会话,请键入 screen -r。你会发现更多关于using screen here的信息。

【讨论】:

以上是关于在谷歌云上运行 nohup 后 Chromedriver 关闭的主要内容,如果未能解决你的问题,请参考以下文章

尝试在谷歌云运行上安装日志记录但它失败了

在谷歌云上创建集群

如何在谷歌云构建中访问 git 标签?

如何在谷歌云数据流中停止流式传输管道

使用云功能在谷歌云发布/订阅上发布需要 3 分钟 - nodejs

在谷歌云平台部署python脚本