在启动时运行脚本,在重新启动时运行其他脚本

时间:2019-09-09 07:50:32

标签: linux amazon-web-services shell

我并不完全确定这是提出问题的正确位置。但是,去吧。

我有一个可以在启动时正常运行的脚本,可以安装docker。之后,我想重新启动服务器并运行更多脚本。有什么办法可以自动化这个过程?

例如

  

安装A。

     

重新启动

     

安装B并运行B

AWS Lighthouse和EC2具有启动脚本,您可以在首次创建新实例时运行。但是我想在重启后运行一些东西。

2 个答案:

答案 0 :(得分:0)

实例重新启动后,您可以利用用户数据执行某些操作。

请参阅下面的链接以实现相同的目的:

Execute user data with every restart

答案 1 :(得分:0)

  

我有一个可以在启动时正常运行的脚本,可以安装docker。

如果脚本“ A”应该仅安装Docker,那么我不建议在使用Docker的AWS上以这种方式安装Docker。

我建议使用AWS optimized ECS AMI,它具有Docker以及从测试到生产所需的所有功能。

如果使用经Amazon ECS优化的Amazon Linux 2 AMI启动实例,则包括:

  • Amazon Linux 2的最新最低版本

  • 最新版本的Amazon ECS容器代理(1.30.0)

  • 最新的Amazon ECS容器代理(18.06.1-ce)的推荐Docker版本

  • 用于运行和监视Amazon ECS代理(1.30.0-1)的最新版ecs-init软件包

我不确定在安装A后为什么需要重新启动实例?因此,在上述AMI中,您要在Script A上使用docker,因此请在user data中添加Script B,它将在启动时运行,而无需重新启动。

如果您仍然愿意继续当前的操作,则它取决于底层操作系统在重新启动或关闭时运行脚本,因为只有用户数据行为对于所有操作系统都是相同的也可以尝试使用@Pacifist或here发布的答案。