【发布时间】:2011-09-06 00:43:11
【问题描述】:
我有一个用 c# 编写的程序,并希望它在我的实例启动时启动。
我已经将“mono /home/ec2-user/program/program.exe”添加到 /etc/rc.local,但它什么也没做。 我该怎么办?
【问题讨论】:
标签: linux amazon-ec2 startup boot
我有一个用 c# 编写的程序,并希望它在我的实例启动时启动。
我已经将“mono /home/ec2-user/program/program.exe”添加到 /etc/rc.local,但它什么也没做。 我该怎么办?
【问题讨论】:
标签: linux amazon-ec2 startup boot
考虑使用cloud-init(如果您使用的是 Ubuntu)或user-data start script。这些将允许您启动一个实例,以您喜欢的方式配置它(使用必要的包,如 mono),下载您自己的代码,并在实例启动后立即运行。
这是重用实例或重新打包实例的首选方式,因为将“库存”图像转换为您自己的自定义图像所需的所有步骤都是自动化的。
【讨论】:
ec2-run-instance 启动一个新实例。 ec2-start-instance 恢复现有(但已停止)的实例,无论该实例在何时停止。虽然有很多方法可以让实例在第一次启动时执行操作,但没有太多方法可以让实例在启动时执行操作。考虑将您的代码编写为始终运行的守护程序,然后它将按照您的预期停止并使用实例启动。
@vsekhar 是正确的,据我所知,关于实例重新启动时会发生什么。在这种情况下,守护进程是可以做到的最好的。
但是,由于 RAM 中的所有信息都丢失了,通常只需重新启动即可。您可以启动实例并重新启动,以便正常处理启动脚本。重启可以使用ec2-reboot-instances。
【讨论】: