Useful Scripts
Prevent Idle Shutdown
This script uses thekodi-send
tool to prevent Kodi from shutting down if there are active SSH, SAMBA, or NFS connections. The script checks every 60 seconds, and if at least one connection exists the commandInhibitIdleShutdown(true)
is sent to Kodi.
Create/storage/.config/prevent_idle.sh
with the following content:
#!/bin/shIDLE_SHUTDOWN_ALLOWED_LAST_STATE=-1while truedo 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 kodi-send --action="AllowIdleShutdown" if [ 0 == $IDLE_SHUTDOWN_ALLOWED ] ; then kodi-send --action="InhibitIdleShutdown(false)" else kodi-send --action="InhibitIdleShutdown(true)" fi fi fi sleep 60done
Call the script from/storage/.config/autostart.sh
so it runs as a background task. It will continue to monitor the state of connections until the device is halted.
(/usr/bin/bash /storage/.config/prevent_idle.sh)&
DYNU IP Updater
Create/storage/.config/dynu_update.sh
with the following content:
#!/bin/shDYNU_USERNAME="username"DYNU_PASSWORD="password-hash"DYNU_HOSTNAME="example.dynu.com"REFRESH_RATE=60PUBLIC_IP=0.0.0.0test_ip (){ if [ -n $2 ] ; then if [ $1 != $2 ] ; then update_ip $2 echo $2 else echo $1 fi fi}update_ip (){ DYNU_WGET="https://api.dynu.com/nic/update?hostname=$DYNU_HOSTNAME&myip=$1&username=$DYNU_USERNAME&password=$DYNU_PASSWORD" DYNU_UPDATE=`wget $DYNU_WGET -O - -q ; echo` (>&2 echo "$DYNU_UPDATE")}while true; do PUBLIC_IP_TEST=`wget http://ipecho.net/plain -O - -q ; echo` echo $PUBLIC_IP - $PUBLIC_IP_TEST PUBLIC_IP="$(test_ip $PUBLIC_IP $PUBLIC_IP_TEST)" sleep $(REFRESH_RATE) PUBLIC_IP_TEST=`curl -s checkip.dyndns.org | sed 's#.*Address: \(.*\)</b.*#\1#'` echo $PUBLIC_IP - $PUBLIC_IP_TEST sleep $(REFRESH_RATE) PUBLIC_IP_TEST=`curl -s ifconfig.co` echo $PUBLIC_IP - $PUBLIC_IP_TEST PUBLIC_IP="$(test_ip $PUBLIC_IP $PUBLIC_IP_TEST)" sleep $(REFRESH_RATE)done
Call the script from/storage/.config/autostart.sh
so it runs as a background task. It will continue to monitor the state of connections until the device is halted.
(/usr/bin/bash /storage/.config/dynu_update.sh)&
Note: If you set the refresh rate under 60 seconds thecheckip.dyndns.org
server will probably block your requests causing the script to fail.
Last updated
Was this helpful?