Created
December 8, 2015 18:14
-
-
Save gbrayut/a2764c3d440a00eb922a to your computer and use it in GitHub Desktop.
Bosun Service files
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# bosun | |
# | |
# chkconfig: - 98 02 | |
# description: bosun | |
### BEGIN INIT INFO | |
# Provides: bosun | |
# Required-Start: networking | |
# Required-Stop: networking | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: Runs teh bosun | |
# Description: bosun | |
### END INIT INFO | |
# Source function library. | |
. /etc/rc.d/init.d/functions | |
base_dir="/opt/bosun" | |
exec="/opt/bosun/bosun" | |
prog="bosun" | |
config="${base_dir}/config/prod.conf" | |
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog | |
lockfile=/var/lock/subsys/$prog | |
pidfile=/var/run/bosun.pid | |
logfile=/var/log/$prog.log | |
#These "secrets" can be used in the prod.conf using syntax like ${env.CHAT} or ${env.API_KEY} | |
export CHAT=https://chat.company.com/rooms/123?key=123456789012345678901234567890 | |
export API_KEY=123456789012345678901234567890 | |
check() { | |
$exec -t -c $config | |
if [ $? -ne 0 ]; then | |
echo "Errors found in configuration file, check it with '$exec -t'." | |
exit 1 | |
fi | |
} | |
start() { | |
[ -x $exec ] || exit 5 | |
[ -f $config ] || exit 6 | |
check | |
echo -n $"Starting $prog: " | |
# if not running, start it up here, usually something like "daemon $exec" | |
ulimit -n 65536 | |
daemon daemonize -a -c $base_dir -e $logfile -o $logfile -p $pidfile -l $lockfile $exec -c $config $OPTS | |
retval=$? | |
echo | |
[ $retval -eq 0 ] && touch $lockfile | |
return $retval | |
} | |
stop() { | |
echo -n $"Stopping $prog: " | |
# stop it here, often "killproc $prog" | |
killproc -p $pidfile -d 5m | |
retval=$? | |
echo | |
[ $retval -eq 0 ] && rm -f $lockfile | |
return $retval | |
} | |
restart() { | |
check | |
stop | |
start | |
} | |
reload() { | |
restart | |
} | |
force_reload() { | |
restart | |
} | |
rh_status() { | |
# run checks to determine if the service is running or use generic status | |
status $prog | |
} | |
rh_status_q() { | |
rh_status >/dev/null 2>&1 | |
} | |
case "$1" in | |
start) | |
rh_status_q && exit 0 | |
$1 | |
;; | |
stop) | |
rh_status_q || exit 0 | |
$1 | |
;; | |
restart) | |
$1 | |
;; | |
reload) | |
rh_status_q || exit 7 | |
$1 | |
;; | |
force-reload) | |
force_reload | |
;; | |
status) | |
rh_status | |
;; | |
condrestart|try-restart) | |
rh_status_q || exit 0 | |
restart | |
;; | |
*) | |
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" | |
exit 2 | |
esac |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Bosun unit file at /etc/systemd/system/bosun.service | |
[Unit] | |
Description=Bosun Service | |
After=network.target | |
After=docker.service | |
After=rsyslog.service | |
[Service] | |
Type=simple | |
User=root | |
ExecStart=/home/gbray/go/src/bosun.org/cmd/bosun/bosun -c /home/gbray/go/src/bosun.org/cmd/bosun/gbcentos7.conf | |
Restart=on-abort | |
[Install] | |
WantedBy=multi-user.target | |
#enable and start service | |
systemctl enable bosun | |
systemctl start bosun |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment