Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

User Scripte Ausführungs Problem

Featured Replies

Hallo @ All ich bin so langsam am verzweifeln. Ich habe über Jahre hinweg ein Script geschrieben in Python was Stromkosten eines Garagenkomplex berechnet und dieses auf jede Einzelgarage genau berechnet mit einer Datenbank einfach als .txt Datei. Es Funktioniert Prima hab auch eine einzelne .exe die Local ausführbar ist. Jetzt dachte ich mir ich lass es Testweise mal als Script auf meinen Unraid Server laufen wo man intern über Webbrowser auf den Port zugreift. Selbst das geht ja !!!

 

Problem ist das die .txt Datei (Datenbank) angeblich nicht existiert 

 

Pfad zum Script: /mnt/disk1/appdata/Scripte/neu.py

 

ich habe auch schon über chmod 777 /mnt/disk1/appdata/Scripte/neu.py     ausgeführt

auch die   chmod 777 /mnt/disk1/appdata/Scripte/garagendatenbank.txt       ausgeführt

 

Starte ich das Script über Userscripte Plugin mit

ttyd -p 8080 bash -c "python /mnt/disk1/appdata/Scripte/neu.py; exit"

 

geht es und ist erreichbar aber die Datei garagendatenbank.txt existiert angeblich nicht.

 

Wenn ich aber über das Terminal als angemeldeter root das selbe ausführe:

python /mnt/disk1/appdata/Scripte/neu.py

 

Das gleiche Problem !!!!

 

führe ich als Root nur diesen Befehl aus:

cd /mnt/disk1/appdata/Scripte

chmod +x neu.py

danach 

python /mnt/disk1/appdata/Scripte/neu.py

 

geht alles !!! Als angemeldeter root im Terminal

 

596970BA-59B7-41FF-83FD-C169E4BA2C01.png.8b128df128089f15cc6129b242fe04f8.png

 

gehe über den Browser auf das Script startet es, nur beim auswählen der Menüfunktion 

kommt anschließend wieder:

 

806A2B93-5DEC-4AA9-B3F9-1DDA3411FEBA.png.c1ae18d0e585567f83cb5cbe1e2f8594.png

 

Als welcher Benutzer wird UserScripte überhaupt gestartet ? das die Eigentümer Verhältnisse falsch sind ?

 

Ansonsten geht das Programm nur sobald auf die Datenbank zugegriffen werden soll, das heißt es fehlt wem auch immer der UserScript ausführt

die Ausführungsrechte ????

 

Ich möchte mich jetzt nicht hier unterhalten wegen chmod 777 warum und wieso ich denn sowas mache usw... ich habe die rechte vergeben zum testen an was es überhaupt liegt um den fehler zu finden.

 

Ich habe auch versucht dieses Script als Docker zu schreiben aber da hänge ich noch fest das kommt dann vielleicht später außer es möchte jemand für mich machen das es auf Unraid mit XML Datei läuft über ttyd.... (Programm an sich ist völlig Fertig) aber das ist jetzt was anderes. will es erstmal so vollständig zum laufen bekommen. Bitte Helft mir hab bis heute früh um 5 rumprobiert ohne Erfolg. 

 

Achtung !!!! Hab eben etwas geteset !!!

 

Habe eben den Run Befehl geändert über User Script in

 

ttyd -p 8085 bash     für ein neues leeres Terminal auf Port 8085

 

dort ist man als root angemeldet, als ich den Befehl ausführte ls -l sind alle Berechtigungen gleich !!! danach startete ich das Script über:

root@Miniteufel:/mnt/disk1/appdata/Scripte# python neu.py

 

auf einmal geht es !!!

 

das heißt es hat was mit dem run Befehl zutun, so nenne ich es mal jetzt 

 

ttyd -p 8080 bash -c "python3 /mnt/disk1/appdata/Scripte/neu.py; exit"

 

Edited by Shadowbane

Solved by Shadowbane

Mal versucht den absoluten Pfad zur .txt Datei anzugeben im Python Script?

 

19 minutes ago, Shadowbane said:

 

 

führe ich als Root nur diesen Befehl aus:

cd /mnt/disk1/appdata/Scripte

 

 

geht alles !!! Als angemeldeter root im Terminal

 

 

Das schreit danach.

  • Author

Also es scheint als habe ich nur innerhalb des Verzeichnisses die Rechte zum Ausführen !!

 

über python3 /mnt/disk1/appdata/Scripte/neu.py geht die Garagendatenbank.txt nicht zu öffnen.

 

wechsel ich jetzt als root in das Verzeichnis mit:

cd /mnt/disk1/appdata/Scripte

python neu.py

 

Funktioniert es über den Browser !!!

 

was muss ich da jetzt ändern ??? ?

7 minutes ago, Shadowbane said:

 

 

was muss ich da jetzt ändern ??? ?

Ich weiß doch nicht wie das Python Script aussieht.

Auf jeden Fall gehe ich sehr stark davon aus, dass in dem Python Script ein relativer Pfad benutzt wird. I.e "Garagendatenbank.txt"

Das funktioniert aber nicht, weil der Ort der Ausführung des Script relevant ist. 

Die Garagendatenbank.txt befindet sich in /mnt/disk1/appdata/Scripte nicht in /root

Daher sollte im Python Script direkt statt "Garagendatenbank.txt" "/mnt/disk1/appdata/Scripte/Garagendatenbank.txt" stehen.

Ich hab keine Ahnung von Python und ob's da ne Möglichkeit gibt relative Pfade sauber als absolute Pfade auszugeben.

Edited by Mainfrezzer

  • Author
  • Solution

Es kann so einfach sein, Mannn Mannn Mannnnnnnnn 

 

ttyd -p 8080 bash -c "cd /mnt/disk1/appdata/Scripte/ && python3 neu.py; exit"

 

so lautet jetzt mein befehl unter als Userscript und es geht !!!

 

Vielen Vielen Dank an @Mainfrezzer DANKE für deine Hilfe.

 

dann werd ich mich jetzt nur um die notwendigen Berechtigungen kümmern das es ohne 777 Rechte noch geht !!!

 

Gibt es jemand der mir daraus ein Docker bauen kann wie oben schonmal angesprochen ? Gibt auch ein Trinkgeld :-)

 

Edited by Shadowbane

On 3/2/2025 at 11:44 AM, Shadowbane said:

Gibt es jemand der mir daraus ein Docker bauen kann wie oben schonmal angesprochen ? Gibt auch ein Trinkgeld 🙂

Du kannst uns ja mal dein bisheriges Dockerfile zeigen, oder ggf. einen neuen Thread dafür aufmachen. Dann können wir dir auch leichter helfen. Da es bei dir ja nur ein simples Skript zu sein scheint, könnte das hier schon reichen (falls dein Skript von 3rd-party libraries abhängt, müsstest du die noch entsprechend installieren)

 

FROM python:3.12

WORKDIR /app

ADD . /app

CMD ["python", "neu.py"] 

 

Das müsstest du im Ordner /mnt/disk1/appdata/Scripte/ als "Dockerfile" abspeichern und dann vom Terminal aus innerhalb des Ordners via "docker build -t name_of_the_docker_image ." das Docker Image erstellen. Im Unraid WebUI lässt sich dann via "Docker -> Add Container" der ein Container hinzufügen.

 

Deutlich eleganter und empfehlenswerter wäre es natürlich, die garagendatenbank.txt nicht direkt im Image reinzukopieren, sondern beim Dockercontainer als /app/garagendatenbank.txt im Container zu mounten.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.