Am un script care este menit să funcționeze cu un UPS Hat pentru un Raspberry Pi 4b. Rulez un server Ubuntu 21.04 pe 64 de biți. Când rulez manual scriptul de pe /home/user/ups.sh, funcționează grozav. Cu toate acestea, după ce am urmat instrucțiunile și am creat un fișier rc.local, nu pot face ca scriptul să pornească automat la pornire. Am plasat scriptul în directorul /user/bin/ și am făcut un chmod +x pe el.
#!/bin/bash
echo 17 > /sys/class/gpio/export;
ecou în > /sys/class/gpio/gpio17/direcție;
echo 27 > /sys/class/gpio/export;
ecou în > /sys/class/gpio/gpio27/direcție;
echo 18 > /sys/class/gpio/export;
echo out > /sys/class/gpio/gpio18/direction;
echo 0 > /sys/class/gpio/gpio18/value;
power_timer=0;
inval_power="0";
ups_online1="0";
ups_online2="0";
ups_online_timer="0";
în timp ce adevărat
do
ups_online1=$(cat /sys/class/gpio/gpio27/value);
somn 0,1;
ups_online2=$(cat /sys/class/gpio/gpio27/value);
ups_online_timer=$((ups_online_timer+1));
if (( "$ups_online1" != "$ups_online2" )); atunci
ups_online_timer=0;
fi
if ("$ups_online_timer" > 30));
atunci
echo „$ups_online_timer”;
ups_online_timer=30;
power_timer=0;
inval_power=0;
fi
inval_power=$(cat /sys/class/gpio/gpio17/value);
if (( "$inval_power" == 1 )); atunci
power_timer=$((power_timer+1));
altfel
power_timer=0;
fi
if (( "$power_timer" == 600 )); atunci
echo „Oprire...”
somn 2;
poweroff systemctl;
Ieșire;
fi
Terminat
asta am în fișierul rc.local
#!/bin/sh -e
bash /usr/bin/ups.sh &
iesirea 0
Caut pe google de zile întregi și am încercat fișierele cron și systemd și nimic nu pare să funcționeze. Să sperăm că există un suflet bun care are un răspuns. Mulțumesc.