2011-08-27 182 views
2

我有一個用c#編寫的程序,並希望它在我的實例啓動時啓動。當EC2 linux實例啓動時啓動程序

我已經在/etc/rc.local中添加了「mono /home/ec2-user/program/program.exe」,但它什麼也沒做。 我需要做什麼?

回答

2

考慮使用cloud-init(如果您使用的是Ubuntu)或user-data start script。這些將允許你啓動一個實例,配置它你喜歡的方式(包括像mono這樣的必要軟件包),下載你自己的代碼,並在實例啓動後立即運行它。

這是重新使用實例或重新打包實例的首選方法,因爲將「庫存」圖像轉換爲自定義圖像所需的所有步驟都是自動執行的。

+0

我讀過的內容是雲初始化和用戶數據啓動腳本是用於ec2-run-instance ... 我現在使用的是ec2-start-instance ......是否有可能爲開始實例? – bill

+2

一般不會。 'ec2-run-instance'啓動一個新的實例。 'ec2-start-instance' **在實例停止時的任意點恢復一個現有的(但是停止的)實例。儘管有很多方法可以讓實例在第一次啓動時執行某些操作,但在啓動時沒有太多辦法讓實例執行操作。考慮將代碼編寫爲一個始終運行的守護進程,然後它將停止並按照您的預期從該實例開始。 – vsekhar

+0

+1好的建議。 – Iterator

0

就我所知,@ vsekhar是正確的,關於實例重新啓動時會發生什麼。在這種情況下,守護進程是可以完成的最好的。

但是,由於RAM中的所有信息都已丟失,因此重新啓動通常是可以的。您可以啓動該實例並重新啓動,從而允許正常處理啓動腳本。重新啓動時,您可以使用ec2-reboot-instances