【问题标题】:How to run a command at EC2 Instance RE-boot?如何在 EC2 实例重新启动时运行命令?
【发布时间】:2022-01-05 09:47:22
【问题描述】:

我有一个项目需要在 EC2 重启时运行命令。我只找到了有关用户数据的信息,但这些信息仅在首次发布时有效,这并不是我所需要的。每次连接到机器时,我都需要一个命令来运行。

【问题讨论】:

标签: linux amazon-web-services amazon-ec2


【解决方案1】:

您可以在此目录中存储一个 shell 脚本:

/var/lib/cloud/scripts/per-boot/

它会在每次开机后自动运行。 (这是由cloud-init 完成的,它还运行用户数据脚本。)

【讨论】:

  • 哦,这是一个更好的解决方案!谢谢!!
【解决方案2】:

经过一番研究,我找到了一个非常简单的解决方案。你可以简单地运行。

echo "YOUR_COMMAND" >> .bashrc

如果您在启动 EC2 实例时将其写入“用户数据”部分,这也可以使用,这样您就不必在启动后通过 SSH 连接到它。

享受吧!

【讨论】:

  • 小心 .bashrc - 每次启动 bash 时都会执行它,因此它可以在启动时执行 YOUR_COMMAND 1 次或多次,并且会在以后每次登录时再次触发。您可能需要考虑 cron 的 @reboot 语法在引导时执行一次 YOUR_COMMAND。也可以在每次启动时执行 UserData,但您需要显式配置它,它默认为仅首次启动。
  • 谢谢@MisterSmith,我其实不知道。你能详细说明@reboot吗?有什么文档可以查吗?
  • 根据您的发行版 / cron 版本,有一些注意事项 - 您最好在谷歌上搜索您的设置和单词 cron @reboot 或查看系统上 Cron 的手册页以获得具体指导(来自 bash:@ 987654327@)。基本上将 @reboot YOUR_COMMAND 附加到 crontab 应该可以工作。注意事项包括在某些服务启动之前运行 cron(例如 DNS 解析/文件共享不工作等 - 您可以 sleep 5 && YOUR_COMMAND 等待 5 秒以允许它们启动)或环境变量问题(例如 PATH 或应用程序特定的 env vars 缺失/不正确等)
猜你喜欢
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-13
  • 2014-04-06
  • 2016-06-18
相关资源
最近更新 更多