在谷歌云上运行 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 所述
您可以浏览整个帖子以获得更多想法。我建议使用 bg
和 disown
- 它在 GCP 提供的 Ubuntu 上运行良好,但是您可以尝试各种解决方案并选择最适合您需求的解决方案。
根据我的经验 - 我在很多事情上都使用了 screen
- 包括 virtualbox 并且它有效 - 如果您希望许多进程在后台运行,这可能会更麻烦,但如果这只是其中一个则非常简单。
安装屏幕:sudo apt install screen
,用screen
运行它并将其视为另一个屏幕,运行任何你想要的然后只需按ctrl + ad,你将回到“原始”贝壳。如果您想恢复您的屏幕会话,请键入 screen -r
。你会发现更多关于using screen
here的信息。
【讨论】:
以上是关于在谷歌云上运行 nohup 后 Chromedriver 关闭的主要内容,如果未能解决你的问题,请参考以下文章