【问题标题】:@reboot ending instance upon attempting to ssh in@reboot 在尝试 ssh 时结束实例
【发布时间】:2019-01-10 04:04:52
【问题描述】:

我有一个 EC2 实例,它在每次实例启动时使用 @reboot 运行 python 脚本。 python 脚本使用conn.stop_instances(instance_ids=[my_id]) 在脚本完成后停止实例(更多详细信息here)。不幸的是,我不能再通过 ssh 进入我的实例,因为 python 脚本会立即停止该实例。我可以做些什么来重置实例或手动更改设置?

如果没有,有什么方法可以从实例中获取文件而无需 ssh 进入?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 cron reboot


    【解决方案1】:

    创建一个删除重启脚本的 shell 脚本。

    #! /bin/bash
    rm -f /path/to/my/python_script.py
    

    将此脚本作为 User Data 添加到您的 EC2 实例。

    重启实例。该脚本将运行删除您的 python 重启脚本。

    注意-f 标志。这意味着force,它将处理设置为只读的文件。

    一旦您可以控制/访问您的实例,请返回并从用户数据中删除此脚本。

    Running Commands on Your Linux Instance at Launch

    【讨论】:

    • 嗨,@John Hanley 我试过这个,但我不确定脚本是否曾经运行过,因为实例会立即从“挂起”变为“停止”。也许@reboot 优先于User Data 脚​​本?
    • 有关如何配置以及如何运行@reboot 脚本的更多详细信息。我已经写了其他关于如何分离启动卷、修改它然后重新附加作为另一种选择的答案。
    • 我运行的命令是@reboot python script_name.py。该脚本包含conn.stop_instances(instance_ids=[my_id]),然后在我删除文件之前关闭实例。有没有办法在不启动实例的情况下更改重启设置?
    • 从您的评论中,我不明白您如何配置脚本以运行或您的脚本包含什么。不要遗漏细节。指向真正问题/解决方案的往往是小项目。
    猜你喜欢
    • 2015-06-16
    • 2013-06-04
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多