RASPBIAN mehrere Programme gleichzeitig?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Ich mache es über rc.local und über ein SH-Skript

Wie sieht dein Script bzw. dein Eintrag in rc.local aus?

In rc.local sollte am Ende eines Befehls immer ein & besonders wenn der Befehl nicht beendet wird, z.B.:

/pfad/script1.sh &
/pfad/script2.sh &
platofan23 
Fragesteller
 16.04.2020, 00:10

und dann geht es nach dem ausführen zum nächsten skript über?

sudo python /home/platofan/Desktop/Shutdown_Pi.py  "$@"

sudo  java -jar /home/platofan/Desktop/Server_Mit_Login/Server.jar "$@"

dies sind die befehle je in 2 skripten

0
andie00  16.04.2020, 00:15
@platofan23

Ich vermute deine Scripte rufst du in der rc.local auf, so ähnlich wie ich oben geschrieben hab, oder?

Mit dem & am Ende startest du den Befehl im Hintergrund und es wird nicht darauf gewartet bis er beendet ist, sondern gleich darauf der nächste Befehl ausgeführt.

1
platofan23 
Fragesteller
 16.04.2020, 00:18
@andie00

ja du sagst es aufs wort genau. der baustein der mir fehlte XD. VIelen Dank

1

In einem Skript kannst du programm & >> /dev/null 2>&1 schreiben.

Durch das erste & erstellt die Shell einen eigenen Prozess (fork) das danach sorgt dafür, dass sämptlicher output des Programms verworfen wird. Sonst würde Random in der Shell irgendwelche Texte auftauchen.

platofan23 
Fragesteller
 16.04.2020, 02:17

mir wurde jetzt auch gesagt das bei dem aufruf

/pfad/script1.sh &

ich hatte das & zeichen nicht für den hintergrund. so läuft es nach dem einen auch das andere skript weiter. siehe unten. aber danke. man kann nie genug möglichkeiten kennen ^^

0
PeterKremsner  16.04.2020, 09:02
@platofan23

Das ist im Endeffekt genau der selbe Befehl den ich gschrieben habe.

Sofern das Programm einen Output auf die Commandozeile schreibt sollte man allerdings nach dem & Operator das >> /dev/null schreiben.

Der Hintergrund ist dass der & Operator eine Subshell erzeugt die Standardausgabe des Programms aber auf der Parentshell bleibt. Bei verwendung von & ohne dem >> Operator zur Umleitung der Ausgabe kann es dazu kommen, dass in der Shell plötzlich irgendwelche Texte auftauchen die die Shell auch praktisch unbenützbar machen. Daher ist es gute Praxis die Ausgabe umzuleiten.

Wenn du statt >> /dev/null >> ~/script1.log schreibst schreibt dir dieser Befehl praktisch gleich ein Logfile zu dem Skript in deinen Home Folder.

Eine wirklich andere Möglichkeit und vermutlich die beste ist die Erstellung eines systemd scripts. Dann kannst du dein Programm mit systemd start script starten. Wenn du start durch reload oder stop ersetzt kannst du dein Script auch steuern was bei der Verwendung von & nicht möglich ist.

0

Das Hauptproblem ist der Ram. Es gibt Modelle die nur über 512 MB oder 1 GB Ram Verfügen. Java ist sehr Ressourcenfressend und Beansprucht auch viel Leistung beim RasPi. Besser wäre es man nimmt einen Ras Pi mit 2 oder 4 GB und kann so auch mehre Anwendungen Parallel laufen lassen.

Woher ich das weiß:eigene Erfahrung
platofan23 
Fragesteller
 16.04.2020, 00:03

ich hab ja ein rpi 3b+ XD. Nein ich bekomme nur den parallelstart nicht hin.

0
platofan23 
Fragesteller
 16.04.2020, 00:18
@Silberfan

habs problem gelöst. siehe unten. das ganze in den hintergrund zu setzen XD

0