rattail-fabric/rattail_fabric/deploy/check-supervisor-process

58 lines
1.8 KiB
Plaintext
Raw Normal View History

#!/bin/sh
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2018 Lance Edgar
#
# This file is part of Rattail.
#
# Rattail is free software: you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# Rattail is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# Rattail. If not, see <http://www.gnu.org/licenses/>.
#
################################################################################
#
# This is a simple script which will output a single line of info, and exit
# with a return code which indicates status of a given supervisor process. It
# was designed for use with Shinken monitoring. Invoke like so:
#
# check-supervisor-process NAME
#
# Where NAME refers to the process, e.g. 'rattail:datasync'. Exit code may be:
#
# * 0 = process is confirmed running
# * 2 = process is confirmed *not* running
# * 3 = unknown state
#
################################################################################
NAME="$1"
if [ "$NAME" = "" ]; then
echo "Usage: check-supervisor-process NAME"
exit 3
fi
STATUS=$(sudo supervisorctl status $NAME | awk -F ' +' '{print $2}')
if [ $STATUS = "RUNNING" ]; then
echo "supervisor reports RUNNING status"
exit 0
fi
if [ "$STATUS" = "" ]; then
echo "unable to perform status check!"
exit 3
fi
echo "supervisor reports $STATUS status"
exit 2