|
|
@@ -4,6 +4,7 @@
|
|
|
CURL_TIMEOUT=2
|
|
|
DATE_TIMEOUT=360
|
|
|
PMS_URL="http://localhost:32400/"
|
|
|
+ADMIN_EMAIL="zach@kotlarek.com"
|
|
|
|
|
|
# Command-line config
|
|
|
LOOP=-1
|
|
|
@@ -14,7 +15,7 @@ fi
|
|
|
# Run at least once, loop if requested
|
|
|
while [ $LOOP -ne 0 ]; do
|
|
|
# State tracking
|
|
|
- FAILED=1
|
|
|
+ FAILED=""
|
|
|
|
|
|
# Ask for the last update time from Plex
|
|
|
UPDATE="`curl --silent --max-time "${CURL_TIMEOUT}" "${PMS_URL}" | \
|
|
|
@@ -24,17 +25,22 @@ while [ $LOOP -ne 0 ]; do
|
|
|
if [ -n "${UPDATE}" ]; then
|
|
|
DATE="`date '+%s'`"
|
|
|
DIFF=$(( $DATE - $UPDATE ));
|
|
|
- if [ $DIFF -le $DATE_TIMEOUT ]; then
|
|
|
- FAILED=0
|
|
|
+ if [ $DIFF -gt $DATE_TIMEOUT ]; then
|
|
|
+ FAILED="Update timeout"
|
|
|
fi
|
|
|
+ else
|
|
|
+ FAILED="HTTP timeout"
|
|
|
fi
|
|
|
|
|
|
# If Plex has failed kill it
|
|
|
- if [ $FAILED -gt 0 ]; then
|
|
|
- echo "PMS is non-responsive. Killing..." 1>&2
|
|
|
+ if [ -n "${FAILED}" ]; then
|
|
|
+ ERR_MSG="PMS is non-responsive (${FAILED}). Killing..."
|
|
|
killall 'Plex Media Server'
|
|
|
if [ $LOOP -lt 1 ]; then
|
|
|
+ echo "${ERR_MSG}" 1>&2
|
|
|
exit 1
|
|
|
+ elif [ -n "${ADMIN_EMAIL}" ]; then
|
|
|
+ echo "${ERR_MSG}" | sendmail "${ADMIN_EMAIL}"
|
|
|
fi
|
|
|
fi
|
|
|
|