hyperbot/contrib/rc.d/hyperbot

78 lines
1.1 KiB
Bash

#!/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