passive-income/restart.sh
Pakobbix c9faefa42c
added an lock file to exit restarter if restart is already triggered
If you want multiple conditions (if ping is sucessfull, on less than X CPU Usage etc) for the restarter, it will create a lock file now to avoid multiple instances.
2023-02-14 20:36:17 +01:00

53 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Variablen für Benennung und Ebesucher Nutzernamen
username=
containername=ebesucher
# Variable für die Maximale Nutzung von CPU Cores
CPUcores=
# Überprüfe ob bereits ein restart läuft
if [ -f /tmp/ebesucher_restart.lock ]; then
exit
fi
# Erstelle Lockfile
echo $$ > ebesucher_restart.lock
# Ordner des Skripts
git_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
# Wechsel in den Ordner
cd "$git_dir" || exit
# Stoppe alten Container
docker stop "$containername"
# Lösche alten Container
docker rm "$containername"
# Lösche altes Firefox Profil
rm -rf config/
# Stelle Firefox Profil Sicherung wieder her
unzip -qqo config.zip
# Warte 60s um die 120s Wartezeit von Ebesucher zu umgehen
sleep 60s
# Starte Ebesucher Firefox
docker_run(){
if [ -z "$username" ]; then
# Funktion zum starten des Containers, falls username nicht gesetzt
docker run -d --name="$containername" -p 3000:5800 -v "$git_dir"/config:/config:rw -m "$1" --cpus "$CPUcores" --shm-size 2g jlesage/firefox
else
# Funktion zum starten von Firefox immer mit der Surfbar (Verhindert dass bei Updates Firefox ein "neue Features" Tab über der Surfbar öffnet)
docker run -d --name="$containername" -p 3000:5800 -e FF_OPEN_URL="https://ebesucher.com/surfbar/$username" -m "$1" --cpus "$CPUcores" -v "$git_dir"/config:/config:rw --shm-size 2g jlesage/firefox
fi
}
# Überprüfe wieviel Arbeitsspeicher vorhanden ist, um bei Geräten mit weniger als 4 GB 1 GB als Sicherungs zu haben.
ram_avail=$(bc <<<"scale=2;$(($(free | awk 'NR==2 {print $2}') / 1000000))")
if ((ram_avail >= 3 && ram_avail <= 4)); then
docker_run "3g" "$CPUSet"
elif [[ $ram_avail -ge "5" ]]; then
docker_run "4g" "$CPUSet"
fi
rm -f /tmp/ebesucher_restart.lock