19.09.2024, 23:07
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2024, 14:58 von Manfred Aabye.)
Ich habe heute eine Autorestartfunktion erstellt
Eigentlich wollte ich das nie, weil eine defekte OpenSim Version nicht immer wieder neu gestartet werden sollte.
1. Das Skript anpassen
Hier ist das angepasste Bash-Skript, das überprüft, ob die Screens "RO" und "sim1"(Robust und Welcome Region) laufen,
und wenn nicht, das Kommando `bash /opt/osmtools.sh restart` ausführt:
```bash (5.Überarbeitung)
```
Speichere das Skript als z.B. `check_screens.sh`.
2. Das Skript ausführbar machen
Führe den folgenden Befehl aus, um das Skript ausführbar zu machen:
```bash
chmod +x /opt/check_screens.sh
```
3. Einen Cron-Job einrichten, der das Skript alle 15 Minuten ausführt
Öffne den Cron-Editor mit dem folgenden Befehl:
```bash
crontab -e
```
Füge folgende Zeile am Ende hinzu, um das Skript alle 15 Minuten auszuführen:
```bash
*/15 * * * * bash /opt/check_screens.sh
```
4. Cron-Job überprüfen
Du kannst mit dem Befehl `crontab -l` überprüfen, ob der Cron-Job korrekt eingerichtet wurde:
```bash
crontab -l
```
Damit wird das Skript alle 15 Minuten ausgeführt und prüft, ob die Screens "RO" und "sim1" laufen.
Wenn einer der beiden nicht läuft, wird `bash /opt/osmtool.sh restart` aufgerufen.
Eigentlich wollte ich das nie, weil eine defekte OpenSim Version nicht immer wieder neu gestartet werden sollte.
1. Das Skript anpassen
Hier ist das angepasste Bash-Skript, das überprüft, ob die Screens "RO" und "sim1"(Robust und Welcome Region) laufen,
und wenn nicht, das Kommando `bash /opt/osmtools.sh restart` ausführt:
```bash (5.Überarbeitung)
PHP-Code:
#!/bin/bash
# Dieses Skript überprüft, ob die Screens "RO" und "sim1" des OpenSimulators laufen.
# Wenn einer der beiden Screens nicht läuft und das entsprechende Verzeichnis vorhanden ist,
# wird ein Eintrag in die Log-Datei ProblemRestarts.log geschrieben und das Skript /opt/osmtool.sh mit dem Parameter restart ausgeführt.
#
# Voraussetzungen:
# - Das Skript sollte mit den entsprechenden Rechten ausgeführt werden, um auf die Screens zugreifen zu können.
# - Die Verzeichnisse /opt/robust und /opt/sim1 müssen vorhanden sein, wenn die zugehörigen Screens überprüft werden sollen.
# Überprüfen, ob das Verzeichnis /opt/robust existiert.
if [ -d "/opt/robust" ]; then
# Überprüfen, ob das Screen RO läuft.
screenRO=$(screen -ls | grep -w "RO")
# Wenn das Screen nicht läuft, Log-Eintrag erstellen und das Skript ausführen.
if [ -z "$screenRO" ]; then
echo "Der Robust des OpenSimulators musste am $(date '+%Y-%m-%d %H:%M:%S') neu gestartet werden, da es ein Problem gegeben hat" >> ProblemRestarts.log
bash /opt/osmtool.sh restart
exit 0 # Beende das Skript, um doppelte Neustarts zu vermeiden.
fi
fi
# Überprüfen, ob das Verzeichnis /opt/sim1 existiert.
if [ -d "/opt/sim1" ]; then
# Überprüfen, ob das Screen sim1 läuft.
screenSim1=$(screen -ls | grep -w "sim1")
# Wenn das Screen nicht läuft, Log-Eintrag erstellen und das Skript ausführen.
if [ -z "$screenSim1" ]; then
echo "Die Welcome Region des OpenSimulators musste am $(date '+%Y-%m-%d %H:%M:%S') neu gestartet werden, da es ein Problem gegeben hat" >> ProblemRestarts.log
bash /opt/osmtool.sh restart
fi
fi
Speichere das Skript als z.B. `check_screens.sh`.
2. Das Skript ausführbar machen
Führe den folgenden Befehl aus, um das Skript ausführbar zu machen:
```bash
chmod +x /opt/check_screens.sh
```
3. Einen Cron-Job einrichten, der das Skript alle 15 Minuten ausführt
Öffne den Cron-Editor mit dem folgenden Befehl:
```bash
crontab -e
```
Füge folgende Zeile am Ende hinzu, um das Skript alle 15 Minuten auszuführen:
```bash
*/15 * * * * bash /opt/check_screens.sh
```
4. Cron-Job überprüfen
Du kannst mit dem Befehl `crontab -l` überprüfen, ob der Cron-Job korrekt eingerichtet wurde:
```bash
crontab -l
```
Damit wird das Skript alle 15 Minuten ausgeführt und prüft, ob die Screens "RO" und "sim1" laufen.
Wenn einer der beiden nicht läuft, wird `bash /opt/osmtool.sh restart` aufgerufen.
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.