diff --git a/examples/Makefile.am b/examples/Makefile.am index 29295da..cd99f29 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,3 +1,4 @@ +EXTRA_DIST = monitor-script.sh supervisor-script.sh tempmon.sh bin_PROGRAMS = ex1 ex2 AM_CFLAGS = -W -Wall -Wextra -std=gnu99 AM_CPPFLAGS = -I$(top_srcdir)/src diff --git a/examples/monitor-script.sh b/examples/monitor-script.sh new file mode 100755 index 0000000..73beda9 --- /dev/null +++ b/examples/monitor-script.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +PID=$(pidof sysrepo-plugind) +if [ -z "$PID" ]; then +# logger -sk -t monitor -I $PPID -p user.error "sysrepo-plugind is not running" + exit 0 +fi +MEM=$(awk '/VmRSS/{print $2}' /proc/$PID/status) + +logger -sk -t monitor -I $PPID -p user.notice "sysrepo-plugind memory usage: $MEM kB" +exit 0 diff --git a/examples/supervisor-script.sh b/examples/supervisor-script.sh new file mode 100755 index 0000000..826804b --- /dev/null +++ b/examples/supervisor-script.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +role=$1 +code=$2 +pid=$3 +label=$4 + +case $code in + 3) + logger -sp user.err -I $$ "process $pid failed a kick, cause $code, restarting service." + ;; + 5) + logger -sp user.err -I $$ "process $pid failed to meet its deadline, cause $code" + logger -sp user.err -I $$ "this cause is unrecoverable, exit 1!" + exit 1 + ;; + *) + ;; +esac + +logger -sp user.err -I $$ "system recovered, exit 0" +exit 0 diff --git a/examples/tempmon.sh b/examples/tempmon.sh new file mode 100755 index 0000000..402948a --- /dev/null +++ b/examples/tempmon.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +TEMP=/sys/class/thermal/thermal_zone0/temp + +check() +{ + awk '{temp=$1; temp=temp/1000; rc=sprintf("%.1f", temp); exit rc < 55.0 }' < "$1" +} + +if [ ! -f "$TEMP" ]; then + logger -sk -t tempmon -I $PPID -p user.warn "No such sensor $TEMP" + exit 1 +fi + +if check "$TEMP"; then + echo "Too hot!" + exit 10 +fi