Am încercat să execut un script la pornire, dar nu am reușit.
crontab
@reboot /bin/sleep 8s && /bin/bash /home/user/reconnect.sh > /home/user/reconnect.log 2>&1
Scriptul rulează bine dacă îl execut manual.
#!/bin/bash
# Dacă a pornit ca root, atunci reporniți ca utilizator „utilizator”:
if [ "$(id -u)" -eq 0 ]; atunci
exec sudo -H -u utilizator $0 „$@”
echo "Acest lucru nu este niciodată atins.";
fi
echo "Acesta rulează ca utilizator $(id -un)";
în timp ce [ „adevărat”]
do
VPNCON=$(/bin/nmcli con | /bin/grep PureVPN_PPTP | /bin/cut -f18 -d " ")
dacă [[ $VPNCON != ens3 ]]; atunci
/bin/echo „Deconectat, încercând să mă reconectam...”
(/bin/sleep 1s && /bin/nmcli con up uuid 1dfcb9f6-1b90-3d92-9f8b-106dc35da0f4)
elif IP=$(ifconfig ppp0 | awk '/inet/{print $2; exit}')
(/bin/sleep 5s)
[ "$IP" != "xxx.xxxx.xxx.xxx" ]; atunci
/bin/echo „IP greșit: $IP”
(/bin/sleep 1s && /bin/nmcli cu down uuid 1dfcb9f6-1b90-3d92-9f8b-106dc35da0f4 && /bin/sleep 2s && /bin/nmcli con up uuid 1dfcb9f6-1b90f6-3dc35da0f4)
altfel
/bin/echo "Deja conectat!"
fi
/bin/sleep 30
Terminat
De la postarea inițială, am lucrat puțin la scenariu. Funcționează bine executat manual.
Executat de crone ca utilizator, primesc următoarea eroare:
Acesta rulează ca utilizator utilizator
Deconectat, încercând să mă reconectam...
Eroare: Activarea conexiunii a eșuat: Nu este autorizat să controleze rețeaua.
Cumva, utilizatorul cu cron nu are aceleași drepturi ca și pentru el însuși. Problema este că atunci când este executat ca root, eșuează și el. Acreditările pentru vpn sunt stocate în breloul de chei al utilizatorilor, astfel încât root nu poate stabili conexiunea:-/