#!/bin/bash # # Init file for Galaxy (http://galaxyproject.org/) # Suitable for use on Fedora and derivatives (RedHat Enterprise Linux, Scientific Linux, CentOS) # # Contributed by Brad Chapman # # chkconfig: 2345 98 20 # description: Galaxy http://galaxyproject.org/ #--- config SERVICE_NAME="galaxy" RUN_AS="galaxy" RUN_IN="/path/to/galaxy-dist" #--- main actions start() { echo "Starting $SERVICE_NAME... " cmd="cd $RUN_IN && sh run.sh --daemon" case "$(id -un)" in $RUN_AS) eval "$cmd" ;; root) su - $RUN_AS -c "$cmd" ;; *) echo "*** ERROR *** must be $RUN_AS or root in order to control this service" >&2 exit 1 esac echo "...done." } stop() { echo -n "Stopping $SERVICE_NAME... " cmd="cd $RUN_IN && sh run.sh --stop-daemon" case "$(id -un)" in $RUN_AS) eval "$cmd" ;; root) su - $RUN_AS -c "$cmd" ;; *) echo "*** ERROR *** must be $RUN_AS or root in order to control this service" >&2 exit 1 esac echo "done." } status() { echo -n "$SERVICE_NAME status: " while read pid; do if [ "$(readlink -m /proc/$pid/cwd)" = "$(readlink -m $RUN_IN)" ]; then echo "started" return 0 fi done < <(ps ax -o 'pid cmd' | grep -P '^\s*\d+ python ./scripts/paster.py serve' | awk '{print $1}') echo "stopped" return 3 } notsupported() { echo "*** ERROR*** $SERVICE_NAME: operation [$1] not supported" } usage() { echo "Usage: $SERVICE_NAME start|stop|restart|status" } #--- case "$1" in start) start "$@" ;; stop) stop ;; restart|reload) stop start ;; status) set +e status exit $? ;; '') usage >&2 exit 1 ;; *) notsupported "$1" >&2 usage >&2 exit 1 ;; esac