Google Cloud Platform:Ubuntu VM 不会无限期地运行任务

Google Cloud Platform:Ubuntu VM 不会无限期地运行任务

我在 Google Cloud Compute 上的 Ubuntu VM 中运行后台任务时遇到了问题。当我启动任务时,它会运行一段时间,但最终总会停止。通常这种情况会在大约 20-30 分钟后发生,但有时会持续一个小时。我尝试过的方法:

  • 直接运行任务
  • 使用 nohup 在主终端运行任务
  • 使用屏幕在新终端中运行任务
  • 使用 screen 和 nohup 在新终端中运行任务
  • 以上每个命令均使用 sudo

肯定有办法吧?提前谢谢!

答案1

您应该实际地将该脚本/任务/命令作为守护进程运行。

由于您使用的是 Ubuntu,因此我建议您systemd。有多种方法可以配置服务以满足您的需求,但像这样的方法应该就足够了[文件]。值得注意的是,出于安全原因,您的机器人应该以其自己的用户身份运行,并且仅具有其运行所需的权限。

[Unit]
Description=My Discord Bot
After=network.target

[Service]
Type=simple
User=mybot
WorkingDirectory=/home/mybot
ExecStart=/home/mybot/bin/mybot --option=123
Restart=on-failure

[Install]
WantedBy=multi-user.target

您可以了解有关systemd使用配置选项的更多信息在线文档

答案2

这是我的一个根本性误解。我使用 Google Platform Cloud Shell 时以为我连接到的是完整 VM,但事实并非如此。

在 GCP 上,您必须使用单独的客户端(似乎任何 SSH 客户端都可以)进行 SSH。云 shell 似乎非常有用,但不幸的是,它从根本上来说不是 VM。

相关内容