linux - 在谷歌云上运行 nohup 后 Chromedriver 关闭
问题描述
我有一个使用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不关闭?
解决方案
您可以在 Linux 的后台启动进程。即使您注销它们也会继续运行(本质上是关闭 SSH 窗口)。
有几种方法:
您可以浏览整个线程以获得更多想法。我建议使用bg
& disown
- 它在 GCP 提供的 Ubuntu 上运行良好,但是您可以尝试各种解决方案并选择最适合您需求的解决方案。
根据我的经验 - 我screen
用于很多事情 - 包括 virtualbox 并且它有效 - 如果您希望许多进程在后台运行,它可能会更麻烦,但如果这只是其中一个非常容易。
安装屏幕:sudo apt install screen
,运行它screen
并将其视为另一个屏幕,运行您想要的任何内容,然后只需按一下ctrl + a d,您将回到“原始”外壳。如果你想恢复你的屏幕会话类型screen -r
。您将在此处找到更多关于使用screen
的信息。
推荐阅读
- sql - 这是避免 SQL 注入的好方法吗?
- ansible - Ansible 设置附加引号和中断执行
- sql - 使用 sql 查询对 clickhouse 中的表进行非规范化
- typescript - 打字稿 - 函数不能返回未定义
- android - 在 Android 项目崩溃中的 ViewPager 中添加 Flutter View/Fragment
- c# - 字面量长值
- laravel - 使用 Laravel 应用程序的推送器沿着队列作业使用 QUEUE_DRIVER 设置为 env 文件中的数据库而不是同步
- sympy - sympy 序列:如何使用产品?
- mysql - Pentaho“无法从结果集中获取行”错误
- apache-spark-sql - 将 StructType 转换为 Avro Schema,使用 databricks spark-avro 时返回类型为 Union