Hi
falls die Programm auch was ausgeben probiers mal mit nohup vor dem programmaufruf, also 'nohup sudo .... &'. Ansonsten müsstest du mal den quellcode der beiden Programme posten.
Folgende Situation:
Ich habe 2 Programme (Python) auf dem RPI.
Das Hauptprogramm und als zweites die ständige Überwachung des UART (uart_1.py).
Beide laufen als Endlosschleife.
Aufgerufen werden beide durch die "autostart.sh". Die sieht so aus:
Wenn ich die autostart.sh aus der Befehlszeile starte, läuft alles wiePHP-Code:
#!/bin/bash
python /home/pi/programme/hauptprogramm.py&
python /home/pi/programme/UART/uart_1.py&
exit 0
geplant - beide Programme starten und funktionieren auch zusammen.
aller dings kommen folgende Fehlermeldungen:
PHP-Code:
pi@raspberrypi ~/programme $ sudo sh autostart.sh
: not foundh: 2: autostart.sh:
: not foundh: 3: autostart.sh:
: not foundh: 4: autostart.sh:
: not foundh: 5: autostart.sh:
: not foundh: 6: autostart.sh:
Jetzt sollen aber beide Programme nach dem Bootvorgang selbst starten.
Dazu habe ich in der rc.local folgenden Eintrag:
Nach dem Start laufen beide Programme an, bleiben dann aber hängen.PHP-Code:
.....
sudo sh /home/pi/programme/autostart.sh&
exit 0
-----
Ich probiere schon seit Tagen. Habe unzählig viele Möglichkeiten aus
diversen Foren ausprobiert. Die Befehle mit und ohne "&" verwendet.
Auch beide Programmeinträge in der rc.local oder auch in Crontab (ohne autostart.sh)
brachten keinen Erfolg.
Ich bin für jeden Hinweis dankbar, auch für Hinweise zu ganz anderen Möglichkeiten,
Hauptsache die Programme starten selbst und laufen nebeneinander her.
Hi
falls die Programm auch was ausgeben probiers mal mit nohup vor dem programmaufruf, also 'nohup sudo .... &'. Ansonsten müsstest du mal den quellcode der beiden Programme posten.
| Mfg |
| McGrizzly123 |
Sinnvoll wäre es letztendlich nur die Programme in einer Screensession laufen zu lassen. Dort kann man dann auch ohne Probleme im laufenden Betrieb auf die einzelnen Sessions attachen um z.B. Ausgabe der Programme anzuschauen.
Ich bin jetzt nicht mehr so drin in linux, aber setz dich mal mit taskset auseinander um jeder Python Instanz einen anderen Core zuzuweisen. Dann laufen die unabhängig voneinander wirklich parallel.
Für Multitasking auf einem Core, unter Python mal "_Thread" nutzen.
http://www.python-kurs.eu/threads.php
Hast du auch mal versucht nach der Endung .py ein Leerzeichen zu lassen ?
$ python Programm.py &
Ganz elegant wäre es, wenn du solche Startvorgänge etc. per Init-Skript machst, da du so auch die Programme kontrolliert beim herunterfahren beenden kannst.
Siehe z.B. hier für VNC:
http://kampis-elektroecke.de/?page_id=2655
Schaut ruhig mal auf meiner Homepage vorbei :
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Die Sache ist geklärt.
in der autostart.sh ein Programm mit "nohup", das andere ohne.
Der Grund, warum die Programme bei Aufruf in der Befehlszeile (nach dem Wechsel auf "cd programme") gelaufen sind und sonst nicht
war, dass ich bei Dateizugriffen keine kompletten Pfadangaben eingetragen habe.
Man lernt halt nie aus.....
Danke für die Hilfe.
Lesezeichen