Es geht um einen DLNA-Server, der sich automatisch ausschalten soll, wenn er längere Zeit nicht verwendet wurde. Die Schwierigkeit bedeutet nun herauszufinden, ob irgendwas den Server braucht / verwendet bzw. der Server selbst gerade ein Backup o.ä. macht. In der Praxis gibt es zB die Situation, ich sehe im Schlafzimmer einen Film über den DLNA-Server und habe keine Lust am Ende des Films aufzustehen und in einem anderen Raum den DLNA-Server runtzerzufahren.
Zielführend war nicht via top den Load abzufragen. Der Server ist sogar untertaktet, aber beim Video schauen über den DLNA-Server kann der Load so gering werden, dass der DLNA-Server runterfährt, ein anderes Mal ist der Load wieder deutlich höher.
Ein Kriterium ist, wenn ein rsync oder scp läuft, dass der PC nicht runtergefahren werden darf. Das habe ich so gelöst:
RSYNC_PROCS=`ps ax | grep 'rsync\|scp' | wc -l` if [ ! $RSYNC_PROCS -gt 1 ] ; then
Nun kommt die Schwierigkeit, dass ich nicht sicher erkennen kann, ob der Server von einem Client in Verwendung ist. Theoretisch sollte man das über die Netzwerkverbindung abfragen können, aber die wird gecacht und deswegen ist folgendes unbrauchbar:
CLIENT_UP=`netstat -n -t | grep "192.168.178.20\|192.168.178.21\|192.168.178.22\|192.168.178.23\|192.168.178.24\|192.168.178.30\|192.168.178.100\|192.168.178.101\|192.168.178.102\|192.168.178.103\|192.168.178.104\|192.168.178.110\|192.168.178.111\|192.168.178.112\|192.168.178.113" | grep 'VERBUNDEN'`
Irgednwelche Ideen wie man den Verbindungs-Cache deaktivieren kann bzw. eine andere Lösung für das Problem?