mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
283a5a6bdd
These days bundle is installed in the shims directory, so we need to have this in the PATH for the upstart configuration to work.
63 lines
1.8 KiB
Text
63 lines
1.8 KiB
Text
# /etc/init/puma.conf - Puma config
|
|
|
|
# This example config should work with Ubuntu 12.04+. It
|
|
# allows you to manage multiple Puma instances with
|
|
# Upstart, Ubuntu's native service management tool.
|
|
#
|
|
# See workers.conf for how to manage all Puma instances at once.
|
|
#
|
|
# Save this config as /etc/init/puma.conf then manage puma with:
|
|
# sudo start puma app=PATH_TO_APP
|
|
# sudo stop puma app=PATH_TO_APP
|
|
# sudo status puma app=PATH_TO_APP
|
|
#
|
|
# or use the service command:
|
|
# sudo service puma {start,stop,restart,status}
|
|
#
|
|
|
|
description "Puma Background Worker"
|
|
|
|
# no "start on", we don't want to automatically start
|
|
stop on (stopping puma-manager or runlevel [06])
|
|
|
|
# change apps to match your deployment user if you want to use this as a less privileged user (recommended!)
|
|
setuid apps
|
|
setgid apps
|
|
|
|
respawn
|
|
respawn limit 3 30
|
|
|
|
instance ${app}
|
|
|
|
script
|
|
# this script runs in /bin/sh by default
|
|
# respawn as bash so we can source in rbenv/rvm
|
|
# quoted heredoc to tell /bin/sh not to interpret
|
|
# variables
|
|
exec /bin/bash <<'EOT'
|
|
# set HOME to the setuid user's home, there doesn't seem to be a better, portable way
|
|
export HOME="$(eval echo ~$(id -un))"
|
|
|
|
if [ -d "$HOME/.rbenv/bin" ]; then
|
|
export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
|
|
elif [ -f /etc/profile.d/rvm.sh ]; then
|
|
source /etc/profile.d/rvm.sh
|
|
elif [ -f /usr/local/rvm/scripts/rvm ]; then
|
|
source /etc/profile.d/rvm.sh
|
|
elif [ -f "$HOME/.rvm/scripts/rvm" ]; then
|
|
source "$HOME/.rvm/scripts/rvm"
|
|
elif [ -f /usr/local/share/chruby/chruby.sh ]; then
|
|
source /usr/local/share/chruby/chruby.sh
|
|
if [ -f /usr/local/share/chruby/auto.sh ]; then
|
|
source /usr/local/share/chruby/auto.sh
|
|
fi
|
|
# if you aren't using auto, set your version here
|
|
# chruby 2.0.0
|
|
fi
|
|
|
|
cd $app
|
|
logger -t puma "Starting server: $app"
|
|
|
|
exec bundle exec puma -C config/puma.rb
|
|
EOT
|
|
end script
|