#!/bin/sh set -e cd $(dirname $0)/.. app_root=$(pwd) puma_pidfile="$app_root/tmp/pids/puma.pid" puma_config="$app_root/config/puma.rb" spawn_puma() { exec bundle exec puma --config "${puma_config}" "$@" } get_puma_pid() { pid=$(cat "${puma_pidfile}") if [ -z "$pid" ] ; then echo "Could not find a PID in $puma_pidfile" exit 1 fi echo "${pid}" } start() { spawn_puma -d } start_foreground() { spawn_puma } stop() { get_puma_pid kill -QUIT "$(get_puma_pid)" } reload() { kill -USR2 "$(get_puma_pid)" } case "$1" in start) start ;; start_foreground) start_foreground ;; stop) stop ;; reload) reload ;; *) echo "Usage: RAILS_ENV=your_env $0 {start|stop|reload}" ;; esac