首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在cloud-init中并发运行命令

是否可以在cloud-init中并发运行命令
EN

Stack Overflow用户
提问于 2021-02-12 04:18:32
回答 1查看 125关注 0票数 2

作为我的cloud-init的一部分,我需要下载一个大文件(即.6 6GB工具链/ SDK)。此步骤通过runcmd执行,耗时3-5分钟,约为初始化过程时间的一半。

是否有可能至少在后台提前开始下载(即作为bootcmd的一部分),并继续进行其余的初始化(即apt-get install ...)?

EN

回答 1

Stack Overflow用户

发布于 2021-02-17 13:27:48

是的,这当然是有可能的。例如,给定以下cloud-config:

代码语言:javascript
运行
复制
#cloud-config
bootcmd:
 - echo 'Starting foreground sleep' >> /var/tmp/log
 - date +%s >> /var/tmp/log
 - sleep 5
 - date +%s >> /var/tmp/log

 - echo 'Starting background sleep' >> /var/tmp/log
 - date +%s >> /var/tmp/log
 - sleep 10 &
 - date +%s >> /var/tmp/log

我得到这样的结果:

代码语言:javascript
运行
复制
cat /var/tmp/log
Starting foreground sleep
1613538543
1613538548
Starting background sleep
1613538548
1613538548

增加后台睡眠不会影响cloud-init完成的时间量。后台wget的工作方式应该与此类似。

也就是说,这并不是bootcmd设计的真正目的。如果您检查cloud-init docs,它会指定bootcmd should only be used for things that could not be done later in the boot process。在bootcmd运行之后,一些相当重要的设置任务(包括磁盘设置)仍然可能发生,因此在引导期间过早启动一些大型下载可能不是一个明智的选择。

runcmd模块应该在安装任何apt之前运行。您可以在您的云实例上使用cloud-init analyze show进行验证。除非你有一个非常好的理由使用bootcmd,否则你应该坚持使用runcmd

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66162172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档