Ubuntu deprecated Upstart so I had to turn to Systemd for my app controls in Ubuntu 18.04. In this script I set 2 environment variables (HOME and LANG), change directory to the app directory and starts the Play Framework application
# Myapp systemd script # # Location:/lib/systemd/system/myapp.service # # Useful commands: # # Start Myapp: systemctl start myapp.service # Stop Myapp: systemctl stop myapp.service # Restart Myapp: systemctl restart myapp.service # Show status: systemctl status myapp.service # Enable start on boot: systemctl enable myapp.service # Disable start on boot:systemctl disable myapp.service # # List all services running: systemctl # Check config: systemd-analyze verify myapp.service # #################################################################################### [Unit] Description=Job that runs my app daemon [Service] Type=forking Environment=HOME=/opt/myapp/app Environment=LANG=en_US.UTF-8 ExecStartPre=/bin/bash -c 'cd /opt/myapp/app' ExecStart=/bin/bash -c 'bin/myapp -J-Xms256M -J-Xmx768m -J-server -Dhttp.port=80 -Dconfig.file=conf/application.conf -Dlogger.file=conf/application-logger.xml' [Install] WantedBy=multi-user.target
The arguments for the Play service are what I normally use for AWS. You might need other settings
Tested on Ubuntu 18.04 and Play Framework 2.3