DSM Aufgabenplaner / Python3 / Bash - Prozess bleibt im Status LÄUFT hängen

Status
Für weitere Antworten geschlossen.

Beast666

Benutzer
Mitglied seit
20. Mrz 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Mein System: DS116 (DSM 6.2.1)

Mein Problem:
Ich habe ein Python3 Script, welches ich auf meiner Diskstation laufen lassen möchte.
Wenn ich das Python Script direkt von der Kommandozeile aufrufe (mit Admin User), funktioniert alles einwandfrei.
Wenn ich das Python Script ueber ein Bash Script (mit gleichem User) von der Kommandozeile aufrufe, funktioniert auch alles einwandfrei.

ABER...

...wenn ich das gleiche Bash Script ueber die Aufgabenplanung (gleicher User) der Diskstation (DSM) ausfuehre, bekomme ich fuer diese Task dauerhaft den Status "laeuft" und nichts weiter passiert. Ich muss den Prozess mittels kill stoppen, damit die Task abgebrochen wird.

Woran kann das liegen?

Hintergruende:
Das Python Script soll mein Teufen Multiroom System am Morgen automatisch starten. Den dafuer verwendeten Code (Raumfeld) habe ich aus dem Internet (Ersteller = Patrick Maier / Thomas Feldmann) heruntergeladen und an meine Bedürfnisse angepasst.

Muss dazu sagen, dass ich gerade erst mit dem Scripten anfange und auch in Sachen Linux ziemlicher Anfänger bin. Kann das Problem allerdings logisch nicht ganz nachvollziehen, da das Bash Script doch eigentlich das gleiche macht, wie wenn ich das Python Script direkt aufrufe. Oder hab ich da einen Denkfehler?


So sieht das Bash Script Uebrigens aus:

#! /bin/bash
cd /volume1/myscripts
python3 ones.py
 
Zuletzt bearbeitet:

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.173
Punkte für Reaktionen
421
Punkte
393
Hallo,
vermutlich wird python3 nicht gefunden, nur in einer login-shell werden alle Standardpfade gesetzt. Per which python3 bekommst Du den kompletten Pfad heraus und setzte ihn in das script ein.

Gruß Götz
 

Beast666

Benutzer
Mitglied seit
20. Mrz 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Danke für die schnelle Hilfe. Hab den Pfad ausgelesen und ins Script eingebaut...leider ohne Erfolg.


Ich versuche jetzt, den Umweg über das Bash Script zu umgehen. Auch wenn ich im Aufgabenplaner direkt das Python Script aufrufe, hab ich den gleichen Effekt, d.h. der Prozess bleibt haengen ohne, dass das Script ausgefuehrt wird (zumindest sehe ich nix). Wenn ich das Python Script direkt von der Login-Shell aufrufe, geht alles.

python3 scriptname.py (im Verzeichnis aufgerufen, in dem das Script steht)

Ist echt zum verrückt werden. Hab schon alles in Sachen Berechtigungen und Pfaden probiert - immer das gleiche Resultat.

So sieht mein Aufruf im Aufgabenplaner aktuell aus:
/usr/local/bin/python3 /volume1/myscripts/ones.py
 

Beast666

Benutzer
Mitglied seit
20. Mrz 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Bin immernoch ratlos. Kann es wirklich an den PATH Definitionen liegen?

Mein Python lieget in: /usr/local/bin/python3

Das Script liegt in: /volume1/myscripts/ones.py


Wie bekomme ich diese Pfade für die Aufgabensteuerung definiert? Kann ich das direkt in das Python Script schreiben oder soll ich das Python Script mit einem Bash Script aufrufen, in welchem ich die Pfade mitgebe? Was ist hier der einfachere und sicherere Weg?


Außerdem frage ich mich, ob es tatsaechlich die Pfade sein koennen. Ein Script mit einem einfachen print("Hallo Welt") funktioniert auch über die Aufgabensteuerung ohne Probleme. Dann kann es doch eigentlich nicht dran liegen, dass er das Python nicht findet, oder?

Ich hänge hier auch mal das besagte Script an, allerdings wird es bei Euch nicht viel machen, da ja die zu steuernde Infrastruktur (Teufel Multiroom Lautsprecher) fehlt. Außerdem ist es ziemlich zusammengebastelt, da ich waehrend meiner Fehlersuche saemtliche Strukturen aufgegeben habe. Vielleicht findet ja dennoch jemand die Ursache, warum das Teil nur in der Login Shell, nicht aber ueber die DSM Aufgabensteuerung laeuft.

Anhang anzeigen ones.txt
 
Zuletzt bearbeitet:

starob

Benutzer
Mitglied seit
13. Nov 2018
Beiträge
50
Punkte für Reaktionen
6
Punkte
8
Ist der User der das Script ausführt in der administrators Gruppe? Wenn nicht, ändere das mal.

Gruß
 

Beast666

Benutzer
Mitglied seit
20. Mrz 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Ja, der verwendete User (sowohl Shell, als auch Aufgabenplaner) ist in der Admin Gruppe.

Kann es irgendetwas mit den Threads zu tun haben? Sind dazu evtl spezielle PATH Angaben oder Berechtigungen erforderlich?
 
Zuletzt bearbeitet:

starob

Benutzer
Mitglied seit
13. Nov 2018
Beiträge
50
Punkte für Reaktionen
6
Punkte
8
Meistens ist das, wie goetz schon gesagt hat, ein Problem mit Pfaden und/oder Rechten. Du schreibst, ein einfaches Hello World Python Script funktioniert. Dann liegt es offensichtlich an ones.py
Vielleicht kannst du den Author mal anschreiben und dein Problem schildern. Vielleicht hat der ja eine Idee.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat