Do you really have to be root to start the process? Typically you’d have your app’s directory owned by a normal user, and use that user’s identity to start the app. This is the same user you’d put in PRODUCTION_USER in your ./deliver/config file.
Test that user can start the process manually, example if that user on your system is named admin
sudo su admin
/home/admin/myapp/bin/myapp start
I’m guessing that will fail - a likely reason would be if files are owned by root so you may need to chown -R your application directory.
One other thing that may help you is to use the verbose option, e.g.
On Linux only root can open ports below 1024. A typical configuration is to run your app on a higher port, like 4001, and use a webserver like nginx and let it reverse proxy to your app. nginx on any common distribution will be configured to start as root, open port 80 but then setuid so it runs a normal user account. You definitely don’t want a process running as root listening to the internet.
Thanks guys, I have fixed the issue by running the app on port 4001, and set the ELB (elastic load balancer) for Amazon to connect to instances at port 4001, very cool