You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Cloud Compute Instance启动时自动运行Python脚本

GCP 实例定时启动并自动运行Python脚本修复方案

一、定时启动实例设置

要实现早上自动开启实例,无需手动操作,直接用GCP自带的实例调度功能即可:

  • 进入GCP控制台 → Compute Engine → 实例调度程序
  • 新建调度计划,选择目标实例,设置触发时间为你需要的早间时段,操作选择「启动实例」
  • 注意时区要选择你所在的当地时区,不要使用默认UTC,避免定时时间偏差

二、startup-script 启动脚本失效修复

GCP启动脚本默认以root用户执行,你当前的脚本缺少环境兼容、日志排查配置,修正方案如下:

  1. 修正脚本内容,补全全路径、添加日志输出,修改后内容如下:
#!/bin/bash
# 所有执行日志输出到指定文件,方便后续排查
exec >> /var/log/python_start.log 2>&1
echo "===== 启动脚本执行时间: $(date) ====="
# 切换到代码目录
cd /home/issaca/main/
# 可选:如果你之前是在普通用户issaca下安装的Python依赖,切换到issaca用户执行脚本,避免找不到依赖
su - issaca -c "nohup $(which python3) main.py &"
# 不需要切换用户的话直接用下面的命令
# nohup $(which python3) main.py &
echo "脚本启动完成,Python进程PID: $!"
  1. 配置GCP元数据:编辑目标实例,在「元数据」板块新增键值对,键必须为startup-script(大小写完全匹配,不能写错),值直接粘贴上面修改后的完整脚本内容
  2. 配置目录权限:SSH登录实例后执行以下命令,避免权限不足无法访问代码:
    sudo chmod -R 755 /home/issaca/main/ && sudo chown -R issaca:issaca /home/issaca/main/

三、cronjob 失效修复

如果要使用cron实现开机自动运行脚本,按以下步骤配置:

  1. 把上面修正后的脚本保存为/home/issaca/main/start.sh,执行命令赋予执行权限:
    chmod +x /home/issaca/main/start.sh
  2. 编辑cron配置:SSH登录后执行crontab -e,添加如下规则:
@reboot /bin/bash /home/issaca/main/start.sh >> /var/log/python_cron.log 2>&1
  1. 确认cron服务开机自启:
# Debian/Ubuntu系统执行
sudo systemctl enable --now cron
# CentOS/RHEL系统执行
sudo systemctl enable --now crond

四、故障排查方法

如果配置后仍然不生效,直接查看日志文件定位问题:

  • 查看startup-script日志:cat /var/log/python_start.log
  • 查看cron执行日志:cat /var/log/python_cron.log
    常见新手问题为Python依赖仅安装在普通用户环境,root执行时找不到包,用上面脚本里的su切换到普通用户执行即可解决。

内容的提问来源于stack exchange,提问作者Issac Abraham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 02:03:00