Search code examples
shellamazon-ec2boot

How can I run a Shell when booting up?


I am configuring an app at work which is on a Amazon Web Server.

To get the app running you have to run a shell called "Start.sh" I want this to be done automatically after booting up the server

I have already tried with the following bash in the User Data section (Which runs on boot)

#!/bin/bash
cd "/home/ec2-user/app_name/"
sh Start.sh
echo "worked" > worked.txt

Thanks for the help


Solution

  • Scripts provided through User Data are only executed the first time the instance is started. (Officially, it is executed once per instance id.) This is done because the normal use-case is to install software, which should only be done once.

    If you wish something to run on every boot, you could probably use the cloud-init once-per-boot feature:

    Any scripts in the scripts/per-boot directory on the datasource will be run every time the system boots. Scripts will be run in alphabetical order.