启动脚本似乎不起作用

Bri*_*ker 5 google-compute-engine ubuntu-16.04

我最近开始对某些项目使用Google的Compute引擎,问题是我的启动脚本似乎无法正常工作,由于某种原因我的脚本无法正常工作,因此虚拟机具有启动脚本元数据,并且运行良好当我手动运行它时:

sudo google_metadata_script_runner --script-type startup
Run Code Online (Sandbox Code Playgroud)

这是我要在启动时运行的内容:

#!/bin/bash
sudo apt-get update
sudo rm -f Eve.jar
sudo rm -f GameServerStatus.jar
wget <URL>/Eve.jar
wget <URL>/GameServerStatus.jar
sudo chmod 7777 Eve.jar
sudo chmod 7777 GameServerStatus.jar
screen -dmS Eve sh Eve.sh
screen -dmS PWISS sh GameServerStatus.sh
Run Code Online (Sandbox Code Playgroud)

日志中也没有错误,似乎只是在chmod或screen命令处停止了,有什么想法吗?

谢谢!

y-s*_*een 6

要添加到kangbu的答案中:

通过以下方式检查容器优化的操作系统中的日志:

sudo journalctl -u google-startup-scripts.service
Run Code Online (Sandbox Code Playgroud)

显示脚本无法找到用户。经过长时间的调试,我终于在sudo之前添加了一个延迟,现在它可以工作了。脚本运行时似乎未注册用户。

sudo journalctl -u google-startup-scripts.service
Run Code Online (Sandbox Code Playgroud)


ram*_* vv 2

  1. 进入虚拟机实例页面。
  2. 单击要为其添加启动脚本的实例。
  3. 单击页面顶部的编辑按钮。
  4. 在自定义元数据下,单击添加项目。
  5. 使用以下键之一添加启动脚本:

启动脚本:直接使用此键提供启动脚本内容。startup-script-URL:使用此键向启动脚本文件提供 Google Cloud Storage URL。

这是工作。新实例和现有实例的文档,如GCE 启动脚本中所示

启动脚本输出写入以下日志文​​件:

  1. CentOS 和 RHEL:/var/log/messages
  2. Debian:/var/log/daemon.log
  3. Ubuntu 14.04、16.04 和 16.10:/var/log/syslog

在 Ubuntu 12.04、SLES 11 和 12 以及所有早于 v20160606 的映像上:

sudo /usr/share/google/run-startup-scripts
Run Code Online (Sandbox Code Playgroud)

  • 我已经在创建实例时添加了启动脚本 - 正如我所说,当我使用“sudo google_metadata_script_runner --script-typestartup”手动运行该脚本时,该脚本可以工作,但在虚拟机重新启动时则不能。http://prntscr.com/f9zvhg (3认同)