我有一个基于Amazon Linux AMI运行AMI的EC2实例。 像所有这样的AMI一样,它支持cloud-init系统根据传入每个实例的用户数据来运行启动脚本。 在这种特殊情况下,我的用户数据input恰好是一个包含多个其他启动脚本的Include文件: #include http://s3.amazonaws.com/path/to/script/1 http://s3.amazonaws.com/path/to/script/2 第一次启动我的实例时,cloud-init启动脚本正确运行。 但是,如果我对该实例进行软重启(例如, sudo shutdown -r now通过运行sudo shutdown -r now ),则实例会重新启动, 而不会再次运行启动脚本。 如果我进入系统日志,我可以看到: Running cloud-init user-scripts user-scripts already ran once-per-instance [ OK ] 这不是我想要的 – 我可以看到启动脚本只在每个实例生命周期中运行一次的实用程序,但在我的情况下,每次启动实例时都应该运行,就像正常的启动脚本一样。 我意识到一个可能的解决scheme是手动让我的脚本在第一次运行后插入到rc.local 。 然而,这看起来很麻烦,因为cloud-init和rc.d环境略有不同,我现在必须在第一次启动和所有后续启动时分别debugging脚本。 有谁知道我可以告诉cloud-init总是运行我的脚本? 这听起来像是cloud-init的devise师会考虑的事情。