Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 谷歌云计算启动脚本被忽略,没有日志记录_Google Cloud Platform_Google Compute Engine - Fatal编程技术网

Google cloud platform 谷歌云计算启动脚本被忽略,没有日志记录

Google cloud platform 谷歌云计算启动脚本被忽略,没有日志记录,google-cloud-platform,google-compute-engine,Google Cloud Platform,Google Compute Engine,我在google cloud compute(GCE)上有一个标准的Debian 8.9实例,其中我的启动脚本被忽略 在自定义元数据字段中,对于启动脚本,我尝试运行Rscript(用于批处理R文件),然后关闭系统,如下所示: #! /bin/bash sudo /usr/bin/Rscript /home/myuser/launch_script.R sudo shutdown -h now 启动实例后立即关闭,并忽略Rscript。删除要关闭的最后一行将导致GCE实例启动,但Rscript将

我在google cloud compute(GCE)上有一个标准的Debian 8.9实例,其中我的启动脚本被忽略

在自定义元数据字段中,对于启动脚本,我尝试运行Rscript(用于批处理R文件),然后关闭系统,如下所示:

#! /bin/bash
sudo /usr/bin/Rscript /home/myuser/launch_script.R
sudo shutdown -h now
启动实例后立即关闭,并忽略Rscript。删除要关闭的最后一行将导致GCE实例启动,但Rscript将被忽略。从终端运行“sudo/usr/bin/Rscript/home/myuser/launch_script.R”将导致脚本运行。它的chmod为755,所以我认为这不是权限问题

除了这个问题之外,我在其他地方读到日志应该在/var/log/中进行,但是那里什么都没有。相反,我在实例的根目录中有一堆日志文件(只包含启动脚本,不包含其他内容):


我与谷歌云支持部门取得了联系,他们给出了以下回复:

  • 脚本定义保存在/var/run/google.startup.script下
  • 如果脚本最初没有运行,您可以手动使用:$sudo google_metadata_script_runner--script type startup#用于Debian,或者在Ubuntu和更早的图像上使用#sudo/usr/share/google/run startup scripts#
我在这里发布这些信息,因为它们的文档中没有这些信息(截至2017年8月)。我不确定它有多大帮助,因为在我的例子中没有google.startup.script(使用GCE上最新的Debian图像),但我确实运行了其他命令

然而,我认为我的主要问题是:

  • 我使用AutoSh连接到远程数据库。启动脚本在AutoSH之前运行。在脚本中构建40秒的延迟并以用户身份运行脚本(不是sudo类型的root)似乎已经解决了这个问题。AutoSh是作为主用户运行的,我认为在加载较低权限的用户定义脚本之前加载了它

  • 我使用的是来自用户帐户的一些gcloud命令,它有自己的身份验证问题。以用户身份运行gcloud auth login并确保对我的私钥具有正确的权限解决了此问题


  • 始终记得检查/var/log中的消息和syslog文件以进行故障排除。这使我能够看到系统启动时加载的顺序。

    3年后,这帮助我完成了部分家庭作业。谁说我们这样不做作业