19.12.2021, 10:44
Díky, mask jsem neznal. To se může občas hodit.
Jinak jsem odzkoušel výše uvedený skript s použitím json-rpc. Funguje podle očekávání a ke zrušení idle stavu skutečně nedojde, takže i toto může být jedna z cest.
Jinak jsem odzkoušel výše uvedený skript s použitím json-rpc. Funguje podle očekávání a ke zrušení idle stavu skutečně nedojde, takže i toto může být jedna z cest.
Kód:
#!/bin/sh
IDLE_SHUTDOWN_ALLOWED_LAST_STATE=-1
while true
do
KODI_RUNNING=`ps -A | grep kodi.bin | grep -v grep | wc -l`
if [ 1 == $KODI_RUNNING ] ; then
SSH_ACTIVE=`netstat -tnpa | grep 'tcp.*:22.*ESTABLISHED.*' | wc -l`
NFS_ACTIVE=`netstat -tnpa | grep 'tcp.*:111.*ESTABLISHED.*' | wc -l`
SMB_ACTIVE=`netstat -tnpa | grep 'tcp.*:445.*ESTABLISHED.*' | wc -l`
[ $SSH_ACTIVE -gt 0 -o $NFS_ACTIVE -gt 0 -o $SMB_ACTIVE -gt 0 ] && IDLE_SHUTDOWN_ALLOWED=1 || IDLE_SHUTDOWN_ALLOWED=0
if [ $IDLE_SHUTDOWN_ALLOWED_LAST_STATE != $IDLE_SHUTDOWN_ALLOWED ] ; then
IDLE_SHUTDOWN_ALLOWED_LAST_STATE=$IDLE_SHUTDOWN_ALLOWED
if [ 0 == $IDLE_SHUTDOWN_ALLOWED ] ; then
curl -su user:password -X POST -H "content-type:application/json" \
http://127.0.0.1:8080/jsonrpc -d \
'{"jsonrpc":"2.0","method":"Settings.SetSettingValue","params":["powermanagement.shutdowntime",10],"id":306}'
else
curl -su user:password -X POST -H "content-type:application/json" \
http://127.0.0.1:8080/jsonrpc -d \
'{"jsonrpc":"2.0","method":"Settings.SetSettingValue","params":["powermanagement.shutdowntime",0],"id":306}'
fi
fi
fi
sleep 60
done
