如何在 @reboot 中使用 crontab 停止 ec2?

How to stop ec2 with crontab at @reboot?

我在 Linux ec2 上使用 crontab 来 运行 实例启动时的一些代码。 crontab 的前两行 运行 正确,但我无法让实例在 120 秒后停止。

@reboot python3 run.py
@reboot python3 run2.py
@reboot sleep 120 aws ec2 stop-instances --instance-ids i-059............

如果我 运行 终端中的 was 命令没有问题,只是在 crontab 中不起作用。

这是一个完整的命令:

sleep 120

这是另一个完整的命令:

aws ec2 stop-instances --instance-ids i-059

您不能像尝试那样将多个命令一起粉碎。如果您尝试 运行ning sleep 120 aws ec2 stop-instances --instance-ids i-059,您会看到一条错误消息。该错误消息也可能显示在您服务器的 cron 日志中。

解决方法是在命令之间放置一个分号分隔符,如下所示:

sleep 120 ; aws ec2 stop-instances --instance-ids i-059

这告诉 Linux shell 第一个命令 运行 并等待它完成,然后 运行 第二个命令。