#!/usr/bin/env bash UMBREL_ROOT="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" PERCENT_MEMORY_THRESHOLD=90 check_if_not_already_running() { if ps ax | grep $0 | grep -v $$ | grep bash | grep -v grep then echo "Memory monitor is already running" exit 1 fi } log () { echo "$(date "+%Y-%m-%d %H:%M:%S") ${@}" } check_if_not_already_running log "Memory monitor running!" while true; do percent_memory_used=$(free | awk 'NR==2{print int($3*100/$2) }') if (( $percent_memory_used > $PERCENT_MEMORY_THRESHOLD )); then log "Warning memory usage at ${percent_memory_used}%" if [[ "$(jq -r '.installedApps | length > 0' ${UMBREL_ROOT}/db/user.json)" == "true" ]]; then touch "${UMBREL_ROOT}/statuses/memory-warning" fi fi sleep 60 done