Add update script for quick maintenance without recompilation
This commit is contained in:
77
update.sh
Executable file
77
update.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
# NecroHash Updater
|
||||
# Aktualisiert Code und Services OHNE Neukompilierung.
|
||||
|
||||
TARGET_DIR="/opt/necrohash"
|
||||
USER="pi"
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Bitte als root ausführen (sudo ./update.sh)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$TARGET_DIR" ]; then
|
||||
echo "Verzeichnis $TARGET_DIR nicht gefunden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$TARGET_DIR"
|
||||
|
||||
echo "=== Stoppe Dienste ==="
|
||||
systemctl stop necrohash-miner
|
||||
systemctl stop necrohash-gui
|
||||
|
||||
echo "=== Aktualisiere Code (Git) ==="
|
||||
# Lokale Änderungen (z.B. Config) kurzzeitig speichern
|
||||
git stash
|
||||
git pull origin master
|
||||
# Lokale Änderungen wiederherstellen
|
||||
git stash pop
|
||||
|
||||
echo "=== Setze Berechtigungen ==="
|
||||
chmod +x *.sh
|
||||
chown -R $USER:$USER "$TARGET_DIR"
|
||||
|
||||
echo "=== Aktualisiere Service-Definitionen ==="
|
||||
# Wir schreiben die Services neu, falls sich im Repo die Startlogik geändert hat
|
||||
|
||||
# GUI Service
|
||||
cat <<EOF > /etc/systemd/system/necrohash-gui.service
|
||||
[Unit]
|
||||
Description=NecroHash Web GUI
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=$USER
|
||||
WorkingDirectory=$TARGET_DIR
|
||||
ExecStart=$TARGET_DIR/start_gui.sh
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# Miner Service
|
||||
cat <<EOF > /etc/systemd/system/necrohash-miner.service
|
||||
[Unit]
|
||||
Description=NecroHash Miner (cgminer)
|
||||
After=network.target necrohash-gui.service
|
||||
|
||||
[Service]
|
||||
User=$USER
|
||||
WorkingDirectory=$TARGET_DIR
|
||||
ExecStart=$TARGET_DIR/miner_wrapper.sh
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
echo "=== Starte Dienste neu ==="
|
||||
systemctl daemon-reload
|
||||
systemctl start necrohash-gui
|
||||
systemctl start necrohash-miner
|
||||
|
||||
echo "Update abgeschlossen!"
|
||||
Reference in New Issue
Block a user