#!/bin/bash
# port to check
port=8200
# check every x seconds
checktime=15
# if check succeds, pause for x seconds (actually + checktime)
pausetime=285
# sabnzbd api/host
sab=1
sab_api='xxx'
sab_host='127.0.0.1:8080'
# blacklist = blacklisted programs, one per line
# folders = if one of the blacklisted programs has a file in $folders (one per line) open, it gets sigSTOPped.
base=/media/...
blacklist=$base/blacklist
folders=$base/folders
optlsof="-F p -a $((sed 's/^/-c "/;s/$/" /' "$blacklist"; sed 's/^/+D "/;s/$/" /' "$folders")| tr -d '\n')"
paused=0
while sleep "$checktime"; do
if lsof -Pni ":$port" -sTCP:ESTABLISHED; then
if [ $paused -eq 0 ]; then
if [ $sab -eq 1 ]; then
# sab pause
curl -s -o /dev/null "http://$sab_host/api?apikey=$sab_api&mode=pause"
fi
paused=1
fi
# kill -STOP everything else
pids="$(eval lsof $optlsof | tr -d p)"
kill -STOP $pids
# wait longer
sleep "$pausetime"
continue
fi
if [ $paused -eq 1 ]; then
if [ $sab -eq 1 ]; then
# sab resume
curl -s -o /dev/null "http://$sab_host/api?apikey=$sab_api&mode=resume"
fi
# kill -CONT everything else
pids="$(eval lsof $optlsof | tr -d p)"
kill -CONT $pids
paused=0
fi
done&
disown
Add a code snippet to your website: www.paste.org