Okay, im Repetier Forum wurde mir geholfen. Ein Fehler in meiner Überlegung.
Repetier Server interpretiert die hash-bang line im Script nicht. Die Bash tut das und weiß das sie Python starten muß.
Es muß in der extcommands.xml also Python mit dem Script als Parameter aufgerufen werden. Und bitte mit Pfaden.
Code: Alles auswählen
<command>
<name>Switch Relay</name>
<execute>sudo /usr/bin/python /var/lib/Repetier-Server/database/relay.py</execute>
</command>
sudo kann hier erforderlich sein, je nachdem was in dem Script passiert. Ohne ging es bei mir nicht, weil sich die GPIOs nicht setzen ließen.
Code: Alles auswählen
GPIO.setup(RELAIS_1, GPIO.OUT)
RuntimeError: No access to /dev/mem. Try running as root!
Dafür ist natürlich wie oben erwähnt, repetierserver sudo-Rechte für Python einzuräumen.
EDIT: Dabei übrigens die Warnung (weil ich auch reingetappt bin)
*NIEMALS* in /etc/sudoers.d mit vi oder nano rumfurwerken. Die machen keine Syntaxkontrolle und ruckzuck hat man sich sudo lahmgelegt. Und wenn man dann außerdem noch kein root-passwort gesetzt hat, kommt man auch nicht mehr dran. Speicherkarte raus, in den PC, und ein live linux konnten nurmehr helfen. In /etc/sudoers.d
*IMMER* nur
visudo verwenden, weil das eine Syntaxprüfung vornimmt!
Fein, jetzt kann ich bequem über das Repetier Server Menu meine GPIOs und damit den Drucker Ein- und Ausschalten, und muß nicht immerzu nen Terminal aufmachen