2

my server program needs to be launched on the startup of an EC2 instance. At the minute im just launching it from my SSH with the following commands:

 java -jar ~/DocumentManager/DocumentServer-0.2.jar  

I tried adding this to the .bashrc and /etc/rc.local files but they only seem to work when i ssh in.

Anyone know how to make it so an instance of my application is launched when the computer boots?

Thanks,

Ben

1

3 Answers 3

2

It's possible you can create a script java_server_launch.sh like this:

 #! /usr/bin/sh

    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
    JAVA=/usr/bin/java
    MY_SERVER=/home/your_username/DocumentManager/DocumentServer-0.2.jar
    USER=your_username
    /bin/su - $USER -c "$JAVA -jar $MY_SERVER &"

Put your script under /etc/init.d directory, and then use the command:

update-rc.d java_server_launch.sh defaults

more on update-rc.d command by using man update-rc.d.

Hope this help.

Regards.

Sign up to request clarification or add additional context in comments.

7 Comments

Hi, I tried that and its not working. I ssh'd in and looked at the processes running and its not there. Do i need to put in a start script somewhere?
@BenFlowers : hello, yes under /etc/init.d directory
Okay so basically i created the java_server_launch.sh file and then ran the commands you said. Is there anything else i need to do? (still not working) thanks for your help btw
@BenFlowers : I edited my post, by the way you can take a look at /etc/init.d/skeleton file to see how you can use it to meet your need.
still not working, its close i can tell!! so my jar file is located at ~/DocumentManager/DocumentServer-0.2.jar and i am sshing in as ubuntu@(amazoninstance). im storing my script.sh file in /etc/init.d and it looks like this: #! /usr/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin JAVA=/usr/bin/java MY_SERVER=~/DocumentManager/DocumentServer-0.2.jar USER=ubuntu /bin/su - $USER -c "$JAVA -jar $MY_SERVER &" and running update-rc.d script.sh defaults any clue what im doing wrong?
|
1

Add ampersand(symbol '&') at the end of the command. For example, in your case, java -jar ~/DocumentManager/DocumentServer-0.2.jar &

Old question, but my answer might be helpful for people who look in future.

Comments

0

You can also run your program as a service which automatically run on ec2 container reboot. Below link worked for me:

https://medium.com/@lizlieholleza/run-your-java-application-as-a-service-in-an-ec2-instance-amazon-linux-d7c7b4c0b2f4

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.