【问题标题】:Startup script only executing after instance reboot启动脚本仅在实例重启后执行
【发布时间】:2015-02-27 01:49:01
【问题描述】:

我们有一个运行良好的启动脚本,但它只有在重新启动后才会执行。

我正在更新 gcutil 到 gcloud compute 和 centos6 到 centos7。

我不确定这是否与安全问题有关(SElinux?)。

有人可以帮我调试一下吗?

事实:在创建实例时不存在启动脚本日志。 此外,在输出控制台中,它说没有启动脚本。

重启后一切正常。

【问题讨论】:

  • 刚刚在串行控制台中找到了这个:localhost run-startup-scripts: ... curl: (6) Could not resolve host: metadata.google.internal; Unknown error
  • 几秒钟后如下:NetworkManager[563]: <info> startup complete 我的实例是否在网络管理器启动之前查询元数据?我该如何解决这个问题?

标签: google-compute-engine startupscript


【解决方案1】:

编辑 /usr/share/google/run-startup-scripts 休眠 30 秒有效。

只需添加:

sleep 30(您也可以尝试降低间隔)

这是问题的直接答案,但远非真正的解决方案。

我的线索以及我是如何到达这里的都是我的 cmets

【讨论】:

    【解决方案2】:

    如果我没记错的话,启动脚本只在系统启动/重启时执行,所以这应该可以按预期工作。脚本在机器重新启动后执行。你如何将它传递给元数据服务器?是来自 GCS 存储桶的启动脚本、启动脚本 url 吗?我看到“centos-7-v20141016”在处理启动脚本时遇到问题。

    【讨论】:

    • 您好 Marius,感谢您的回答。我正在使用文件中的启动脚本(我可以在元数据中看到完整的脚本)。但我进入这里是因为它与 SElinux 有关。我还不确定问题的细节,显然有些规则需要很长时间才能配置?禁用 SElinux 有效,我正在阻止通过防火墙访问。
    • 又发生了@marius,什么都没有改变...我不知道为什么有时会发生...我无法将其投入生产。
    • 首先,如果您还没有尝试过,我建议您使用 centos-7-v20150127 或 centos-6-v20150127。要尝试的另一件事是在脚本中设置延迟/睡眠几秒钟,以防您提到的规则配置时间过长。最后,您可以尝试从 GCS 存储桶运行脚本吗?启动脚本网址
    • 谢谢马吕斯。尝试使用 GCS 存储桶中的脚本不起作用。我会尝试 centos-7-v20150127 并回复您。
    • 只有一个细节:如果我运行 sudo /usr/share/google/run-startup-scripts 它可以工作(或重新启动 VM)。
    猜你喜欢
    • 2017-06-10
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 2019-02-01
    • 1970-01-01
    • 2015-03-22
    相关资源
    最近更新 更多