[GELÖST]Shell/Python Script ausführen (via Dummy / system{})

Begonnen von thomka, 16 Dezember 2013, 22:05:47

Vorheriges Thema - Nächstes Thema

masterpete23

Gibt es hierzu noch eine Antwort?
etc sudoers wäre schade

Holgi0815

Hi,

dank dieses Beitrages habe ich meine Anforderung hinbekommen!!
Ich bekomme nur eine weiter Übergabe von Options (hier  -l deu -m p ) nicht hin.
Bsp:
Linux
:~/Scan/1_Scripte$ ./scan_to_ocr_pdf.sh -l deu -m p
geht

fhem>Linux
system('su USER /home/USER/Scan/1_Scripte/scan_to_ocr_pdf.sh -l deu -m p&');; Script wird ausgeführt, aber im Log zum Script ist erkennbar, daß -l $$ und -m $$ leer sind.

Habt Ihr noch Tipps?!
Danke Holger

Wernieman

1. Ich würde Dir empfehlen:
su - USER
Das - bewirkt, das die Umgebung von User geladen wird, sonst erfolgt dieses nicht, d.h. die "aktuelle" Version wird verwendet

2. Verwende lieber die "Originale Schreibweise" mit -c, also
su - USER -c "/home/USER/Scan/1_Scripte/scan_to_ocr_pdf.sh -l deu -m p&"

Ich weiß nicht, ob in Deiner Schreibweise in jedem Fall die Parameter -l, -m von su oder Deinem Script übergeben werden. So wie Deine Probleme klingen, würde ich genau auf dieses Problem Tippen

3. Funktioniert denn Deine Kommandozeile als "FHEM"-User auf der Kommandozeile? Mal Händisch probiert?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Holgi0815

also:
ich hab mal weiter "geechot":
zu 1
su - USER
hat keine Auswirkung, aber gut zu wissen

zu 2
-c
"verschlechtert" das Ergebnis -> im verfeinerten Log kann ich jetzt sehen, daß mit -c nichts ankommt.
echo  "$1">&2
echo  "$2">&2
echo  "$3">&2
echo  "$4">&2

ergibt:
console:
-l
deu
-m
p

fhem ohne "-c"deu
p
-leer-
-leer-

fhem mit "-c"-leer-
-leer-
-leer-
-leer-

in allen Fällen wird das log geschrieben, die Sritp-Ausführung ist also OK

Danke schonmal
Holger

Wernieman

Der Titel steht auf [gelöst]? Wie hast Du es jetzt gelöst?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Holgi0815

moin,
nee, das war von meinem Vorgänger, also, wie man überhaupt ein Script zum laufen bekommt!
ich hab mal etwas abgeändert...
Holger
edit:
btw: meine Problematik kann ich natürlich mit verschiedenen Startscripten, die dann das eigentliche Sript rufen, lösen.
gefühlt, ist das aber "unhübsch" ;-)

Wernieman

Du hast 2 mal mit "-c" gepostet. Das erste stimmt ja so,   was ist der Unterschied zum 2. im Aufruf?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MacisHere

Hallo zusammen,
ich scheitere derzeit daran, aus FHEM heraus einen Python3-Einzeiler aufzurufen. Von der Kommandozeile aus funktioniert der Aufruf (Relais auf PiFace schalten).
Ich rufe das auf mit
{system('python3 /home/pi/Scripts/PiFaceOut_on.py');;}

Auch
{system("python3 /home/pi/Scripts/PiFaceOut_on.py");;}
funktioniert nicht.

Vielleicht hat jemand nen Tip?

chr2k

Auch ich bin gerade dran ein python script via fhem zu starten. Leider habe ich ähnliche Probleme wie der Thread Starter und MacisHere.

Es wird mir auch die "-1" angezeigt. Aber der GPIO und die daran (richtig) angeschloseene LED leuchten nicht. Wenn ich das Script per Python ausführe klappt es. Auch über die Kommandozeile des Raspian Systems klappt es.

Auch die Änderung zwischen " und ' hat nicht funktioniert - Außer dass mir immer "-1" angezeigt wird.

Ich muss das Python Script mit sudo starten, da GPIOs angesprochen werden.

Im Log von FHEM steht folgende Zeile:
sudo: no tty present and no askpass program specified

Irgendwie liest sich das für mich, als würden noch Pakete fehlen, die ich in FHEM installieren muss. Stimmt das?

Danke Euch.

Gruß
Christian

Otto123

Das hier diskutierte mit den Rechten für sudo hast Du beachtet?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

chr2k

Zitat von: Otto123 am 30 August 2015, 17:15:48
Das hier diskutierte mit den Rechten für sudo hast Du beachtet?

ay Karamba, da ist mir doch die untere Zeile im sudoers durch die Lappen gegangen.

Nunja, jetzt läuft halt alles als SU... fürs erste Ok.


Ich lese gerade in deiner SIgnatur dass du die Fritzbox benutzt. Für FHEM?

Otto123

Hallo Christian,

ZitatIch lese gerade in deiner SIgnatur dass du die Fritzbox benutzt. Für FHEM?
hatte ich, als zweite Instanz wegen der Anwesenheitserkennung. Mittlerweile nicht mehr...
Diese Thema und die Umstellung kannst Du ziemlich gut auf meinem Blog nachlesen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

no_Legend

Kann man auch eine init script per DOIF starten?
Hier auch mit der übergabe start stop restart.

Eventuell auch per Ubuntu Services?

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Otto123

DOIF unterscheidet sich da nicht vom restlichen FHEM. Warum sollte man kein script aus DOIF starten können?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

no_Legend

#29
Ich bekomm es einfach nicht hin.

Hintergrund ist, dass ich mir Homebridge eingerichtet habe und momentan per Konsole den Dienst immer restarten muss.

Nun würde ich gerne in das DOIF den Befehl sudo service homebridge start schicken.
Bekomme es aber nicht hin.
Hier wie ich es mri gedacht habe:


([FHEM.Homebrige] eq "on") ({system ('sudo service homebridge start')})



Edit: Habs nu n hinbekommen, hab vergessen das Script fur fhem freizugeben in der sudoers.

Danke und Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.