#!/bin/bash # Simple bash script to start and stop a service # Works without access to /var/run/ or ps and pidof commands # # Date:: Wed, 09 Jan 2008 # Author:: Sebastian Tschan, https://blueimp.net # License:: GNU Affero General Public License SERVICE_TITLE=Service SERVICE_BASENAME=${0##*/} SERVICE_DIR=${0%/$SERVICE_BASENAME} SERVICE_COMMAND=$SERVICE_DIR/$SERVICE_BASENAME.rb SERVICE_CONFIG=$SERVICE_DIR/$SERVICE_BASENAME.conf SERVICE_LOG=$SERVICE_DIR/$SERVICE_BASENAME.log SERVICE_PIDFILE=$SERVICE_DIR/$SERVICE_BASENAME.pid function start { if [ -f $SERVICE_PIDFILE ] then echo "PID file $SERVICE_PIDFILE found - $SERVICE_TITLE already running?" else $SERVICE_COMMAND $SERVICE_CONFIG >> $SERVICE_LOG & echo "Started $SERVICE_TITLE..." PID=$! echo $PID > $SERVICE_PIDFILE fi exit 0 } function stop { if [ -f $SERVICE_PIDFILE ] then PID=`cat $SERVICE_PIDFILE` kill -TERM $PID rm -f $SERVICE_PIDFILE echo "Stopped $SERVICE_TITLE." else echo "PID file $SERVICE_PIDFILE not found - $SERVICE_TITLE not running?" fi exit 0 } function main { for arg in $@ do if [ $arg == "start" ] then start elif [ $arg == "stop" ] then stop else echo "Unknown argument:" $arg echo "Usage: $0 [start|stop]" exit 0 fi done echo "Missing argument." echo "Usage: $0 [start|stop]" exit 0 } # Script execution: main $@