26 lines
878 B
Bash
Executable File
26 lines
878 B
Bash
Executable File
#!/bin/sh
|
|
# /3rd_rw/appdata/root_loop.sh
|
|
# Root command loop. One instance per boot (boot_id lock).
|
|
# Write /3rd_rw/appdata/root_cmd.sh; read /3rd_rw/appdata/root_out.txt.
|
|
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/basic/bin
|
|
export PATH
|
|
|
|
BID=""
|
|
[ -r /proc/sys/kernel/random/boot_id ] && BID=$(cat /proc/sys/kernel/random/boot_id 2>/dev/null)
|
|
[ -z "$BID" ] && BID=0
|
|
LOCK="/3rd_rw/appdata/root_loop.lock.$BID"
|
|
mkdir "$LOCK" 2>/dev/null || exit 0
|
|
|
|
echo "$$" > /3rd_rw/appdata/root_loop.pid
|
|
echo "loop started $$ $BID" > /3rd_rw/appdata/root_loop.log
|
|
|
|
while true; do
|
|
if [ -f /3rd_rw/appdata/root_cmd.sh ]; then
|
|
mv /3rd_rw/appdata/root_cmd.sh /3rd_rw/appdata/root_cmd.run
|
|
/bin/sh /3rd_rw/appdata/root_cmd.run > /3rd_rw/appdata/root_out.txt 2>&1
|
|
echo "rc=$?" >> /3rd_rw/appdata/root_out.txt
|
|
mv /3rd_rw/appdata/root_cmd.run /3rd_rw/appdata/root_cmd.done
|
|
fi
|
|
sleep 1
|
|
done
|