parent
342d66071a
commit
ea1b2d7c1b
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Check if a process is running using Icinga2 and pgrep
|
||||
# Usage: ./check_process.sh -p <process_name> -s <pretty_service_name>
|
||||
|
||||
# Exit codes
|
||||
STATE_OK=0
|
||||
STATE_WARNING=1
|
||||
STATE_CRITICAL=2
|
||||
STATE_UNKNOWN=3
|
||||
|
||||
# Check if the process name and pretty service name are provided
|
||||
while getopts ":p:s:" opt; do
|
||||
case $opt in
|
||||
p)
|
||||
process_name="$OPTARG"
|
||||
;;
|
||||
s)
|
||||
pretty_service_name="$OPTARG"
|
||||
;;
|
||||
\?)
|
||||
echo "Invalid option: -$OPTARG" >&2
|
||||
exit $STATE_UNKNOWN
|
||||
;;
|
||||
:)
|
||||
echo "Option -$OPTARG requires an argument." >&2
|
||||
exit $STATE_UNKNOWN
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$process_name" ]; then
|
||||
echo "UNKNOWN - Process name not provided"
|
||||
exit $STATE_UNKNOWN
|
||||
fi
|
||||
|
||||
if [ -z "$pretty_service_name" ]; then
|
||||
pretty_service_name="$process_name"
|
||||
fi
|
||||
|
||||
# Check if the process is running
|
||||
process_count=$(pgrep -f "$process_name" 2>/dev/null | wc -l)
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "UNKNOWN - Check failed"
|
||||
exit $STATE_UNKNOWN
|
||||
elif [ $process_count -gt 0 ]; then
|
||||
echo "OK - $pretty_service_name is running"
|
||||
exit $STATE_OK
|
||||
else
|
||||
echo "CRITICAL - $pretty_service_name is not running"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
|
@ -1,38 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Parse named arguments
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
--service)
|
||||
SERVICE="$2"
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1"
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Check if the service name is provided
|
||||
if [ -z "$SERVICE" ]; then
|
||||
echo "UNKNOWN - Service name not provided"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
# Check if the service is running
|
||||
service_status=$(service ${SERVICE} onestatus)
|
||||
|
||||
# If the service is running, return OK
|
||||
if echo "$service_status" | grep -iq "${SERVICE} is running \(as\|with\) pid [0-9]*."; then
|
||||
echo "OK - ${SERVICE} is running"
|
||||
exit 0
|
||||
# If the service is not running, return CRITICAL
|
||||
elif echo "$service_status" | grep -iq "${SERVICE} is not running."; then
|
||||
echo "CRITICAL - ${SERVICE} is not running"
|
||||
exit 2
|
||||
# If the check failed, return UNKNOWN
|
||||
else
|
||||
echo "UNKNOWN - Check failed"
|
||||
exit 3
|
||||
fi
|
Loading…
Reference in New Issue