From eeb061a032d9d3b0943bd2f3f9dac7f18e3b9f7f Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Sun, 17 Sep 2017 14:34:37 +0000 Subject: [PATCH] Autosvc --- termux/scripts/autosvc | 39 ++++++++++++++++++++++++++ termux/scripts/sudo | 7 ++++- termux/services/autosvc | 61 +++++++++++++++++++++++++++++++++++++++++ termux/services/crond | 61 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 167 insertions(+), 1 deletion(-) create mode 100755 termux/scripts/autosvc create mode 100755 termux/services/autosvc create mode 100755 termux/services/crond diff --git a/termux/scripts/autosvc b/termux/scripts/autosvc new file mode 100755 index 0000000..ec08e05 --- /dev/null +++ b/termux/scripts/autosvc @@ -0,0 +1,39 @@ +#!/data/data/com.termux/files/usr/bin/bash +# +# Start services based on phone state +# + +function act() { + # Services that should be always on + + service sshd start + service autosvc start + + # Services that should be on depending on battery + + bat="$(termux-battery-status | jq -r '.status')" + + if [[ "$bat" == "FULL" || "$bat" == "CHARGING" ]] + then + service syncthing start + else + service syncthing stop + fi +} + +if [ "$1" == "-d" ] +then + # Daemon mode + while true + do + echo 29 + act &>> $HOME/.local/log/autosvc.log + echo 31 + sleep 60 + done +else + # One shot mode + # TODO Soft-code the log destination & the program arguments + act +fi + diff --git a/termux/scripts/sudo b/termux/scripts/sudo index f410dbc..d3f49da 100755 --- a/termux/scripts/sudo +++ b/termux/scripts/sudo @@ -3,4 +3,9 @@ # Substitution for sudo # -echo "$@" | tsu +if [ "$(whoami)" != 'root' ] +then + echo "$@" | tsu +else + "$@" +fi diff --git a/termux/services/autosvc b/termux/services/autosvc new file mode 100755 index 0000000..175206a --- /dev/null +++ b/termux/services/autosvc @@ -0,0 +1,61 @@ +#!/data/data/com.termux/files/usr/bin/bash +# +# Charge services based on phone state +# + +PIDFILE="$HOME/.local/run/autosvc.pid" +LOGFILE="$HOME/.local/log/autosvc.log" + +start() { + printf "Starting autosvc: " + start-stop-daemon -p "$PIDFILE" -x /data/data/com.termux/files/usr/bin/bash -S -b -m -- "$HOME/.termux/scripts/autosvc" -d -l "$LOGFILE" + termux-toast "Started autosvc" + echo "OK" +} + +stop() { + printf "Stopping autosvc: " + start-stop-daemon -p "$PIDFILE" -x /data/data/com.termux/files/usr/bin/bash -K + termux-toast "Stopped autosvc" + echo "OK" +} + +status() { + printf "autosvc: " + PID="$(cat "$PIDFILE" 2> /dev/null)" + if [[ -n "$PID" && -d "/proc/$PID" ]] + then + echo "running" + else + echo "stopped" + fi +} + +log() { + tail "$@" "$LOGFILE" +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + stop + start + ;; + status) + status + ;; + log) + shift + log "$@" + ;; + *) + echo "Usage: $0 {start|stop|restart|status|log}" + exit 1 +esac + +exit $? diff --git a/termux/services/crond b/termux/services/crond new file mode 100755 index 0000000..3606d1c --- /dev/null +++ b/termux/services/crond @@ -0,0 +1,61 @@ +#!/data/data/com.termux/files/usr/bin/bash +# +# Start crond +# + +PIDFILE="$HOME/.local/run/crond.pid" +LOGFILE="$HOME/.local/log/crond.log" + +start() { + printf "Starting crond: " + start-stop-daemon -p "$PIDFILE" -x crond -S -b -m -- -f -L "$LOGFILE" + termux-toast "Started crond" + echo "OK" +} + +stop() { + printf "Stopping crond: " + start-stop-daemon -p "$PIDFILE" -x crond -K + termux-toast "Stopped crond" + echo "OK" +} + +status() { + printf "crond: " + PID="$(cat "$PIDFILE" 2> /dev/null)" + if [[ -n "$PID" && -d "/proc/$PID" ]] + then + echo "running" + else + echo "stopped" + fi +} + +log() { + tail "$@" "$LOGFILE" +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + stop + start + ;; + status) + status + ;; + log) + shift + log "$@" + ;; + *) + echo "Usage: $0 {start|stop|restart|status|log}" + exit 1 +esac + +exit $?