I had the same problem and for a while this was a reason for me to not upgrade to Ubuntu 16, but we have to keep moving on with this changes. Systemd can be scary, but once you start having experience setting up service scripts it can be easier than Upstart.
Create a file named puma.service in /etc/systemd/system/ similar to this one:
[Unit]
Description=Puma HTTP Server
After=network.target
[Service]
Type=simple
# Preferably configure a non-privileged user
User=appuser
# Specify the path to your puma application root
WorkingDirectory=/home/deploy/appname
# Helpful for debugging socket activation, etc.
Environment=PUMA_DEBUG=1
# Setting secret_key_base for rails production environment. We can set other Environment variables the same way, for example PRODUCTION_DATABASE_PASSWORD
Environment=SECRET_KEY_BASE=b7fbccc14d4018631dd739e8777a3bef95ee8b3c9d8d51f14f1e63e613b17b92d2f4e726ccbd0d388555991c9e90d3924b8aa0f89e43eff800774ba29
# The command to start Puma, use 'which puma' to get puma's bin path, specify your config/puma.rb file
ExecStart=/usr/local/bin/puma -C /home/deploy/appname/config/puma.rb
Restart=always
[Install]
WantedBy=multi-user.target
Run these commands to bring the systemd service up.
systemctl daemon-reload
systemctl enable puma.service
systemctl start puma.service
Your service will be up if you have done right the other steps of this guide:
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-puma-and-nginx-on-ubuntu-14-04
Remember you can check the status of the services with these commands:
systemctl status puma.service
systemctl status nginx
And you can debug using 'tail -f' with these log files:
/home/deploy/appname/shared/log/puma.stderr.log
/home/deploy/appname/log/production.log
/var/log/nginx/error.log