【发布时间】:2021-07-29 19:41:42
【问题描述】:
我正在 GCP 实例组上部署一个 python 应用程序。
python版本为3.7
我在实例的模板中有一个启动脚本,它使用启动应用程序
python manage.py runserver 0.0.0.0:8000
这不适用于初创公司。我需要启动应用程序,它应该继续运行。 我也试过了
nohup python manage.py runserver 0.0.0.0:8000 </dev/null &>/dev/null &
我也试过了
nohup python manage.py runserver 0.0.0.0:8000 &
如果,我通过 SSH 连接到实例,上述所有命令都有效。 我尝试使用这个名为 revamp.sh 的 bash 脚本:
#! /bin/bash
python manage.py runserver 0.0.0.0:8000
元数据中的启动脚本:
chmod +x revamp.sh
./revamp.sh
manage.py 文件和 bash 脚本在同一目录下。
我检查了串行日志,它显示了这个错误:
但是,我需要应用程序从实例模板中定义的启动脚本开始。这样,如果实例扩展,应用程序将自动启动。 该实例有 Ubuntu 16
我怎样才能做到这一点?
【问题讨论】:
-
1) 您必须指定 manage.py 的完整路径 2) 使用串行端口查看有关您的脚本的消息。 cloud.google.com/compute/docs/instances/…
-
脚本和manage.py在同一个目录
-
它们一起位于同一个目录中并不意味着进程当前的工作目录是相同的。查看串行端口输出并使用详细信息更新您的问题。
-
上次编辑后更新。您不能指定 ./revamp.sh 并期望系统知道 ./ 在文件系统中的位置。当启动脚本运行时,没有 user 上下文。您正在作为特权系统进程运行。
-
是的,我检查了串口,它显示错误。我在帖子中添加了错误。当我 ssh 进入机器并运行相同的脚本时,它是如何工作的?
标签: ubuntu google-cloud-platform virtual-machine google-compute-engine ubuntu-16.04