#!/bin/bash . /etc/rc.conf . /etc/rc.d/functions # Set the locale export LANG=${LOCALE:-C} if [[ -r /etc/locale.conf ]]; then parse_envfile /etc/locale.conf "${localevars[@]}" fi declare -a pids while read -r line do pids+=("${line}") done < <( pgrep -u hyperbot ) case $1 in start) stat_busy "Starting hyperbot" # Check it's not already running. if ! (( ${#pids[*]} )) then su - hyperbot -c "cd /srv/hyperbot ; ./envbot & ./hyperbot_fixer & ./issues_change_detector" & # If it's not running then we fail. if ! pgrep hyperbot &>/dev/null then stat_fail exit 1 fi add_daemon hyperbot stat_done else stat_fail exit 1 fi ;; stop) stat_busy "Stopping hyperbot" if ! (( ${#pids[*]} )) then echo "It's not running" stat_fail exit 1 fi for (( i=0 ; i!=${#pids[*]} ; i++ )) do kill "${pids[${i}]}" &>/dev/null || { stat_fail exit 1 } done unset pids rm_daemon hyperbot stat_done ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" >&2 exit 1 esac