2017-08-25 3 views
0

Ich habe eine Fotozelle auf einem Raspberry Pi gebaut. Es funktioniert fantastisch! Aber nach einiger Programmierung habe ich jetzt Probleme, meine Skripte zu organisieren. Momentan werden alle Skripte über "lxterminal -e" gestartet. Jedes Skript hat also ein eigenes Terminalfenster und alles läuft gleichzeitig. Ich frage mich, ob dies effizienter gemacht werden kann.Bash/Python: Organisation mehrerer Skripte

Die grundlegende Funktion der Fotokabine: Menschen drücken eine Fernbedienung, machen ein Foto, Bild wird auf dem eingebauten TFT angezeigt.

start.sh -> wird nach dem Booten automatisch ausgeführt. Es bereitet das System vor, richtet die Kamera ein und bringt sie in einen kabelgebundenen Modus. Nach alledem startet das andere, folgende Skripte:

system-watchdog.sh -> prüft fortlaufend, ob eine der physischen Tasten auf der Fotozelle gedrückt wird, um neu zu starten oder in den Setup-Modus zu gehen. Es ist eine ewige Schleife.

sync.sh -> synchronisiert das aufgenommene Foto mit einigen Ordnern, wo sie für den Ausdruck modifiziert werden. Auch eine andauernde Schleife.

backup.sh -> kopiert alle aufgenommenen Bilder auf ein USB-Gerät als Backup. Dies ist ein Cronjob, alle 5 Minuten.

temp-logger.sh -> Protokolliert die Temperatur der CPU kontinuierlich, weil ich Wärmeprobleme hatte.

Die CPU läuft konstant bei ca. 20-40%. Vielleicht könnte ich mit etwas Optimierung auf Viewer-Skripten und weniger CPU-Nutzung laufen.

Irgendwelche Vorschläge, was ich verwenden könnte, um die Skripte besser zu organisieren?

Vielen Dank für Ihre Vorschläge!

Antwort

1

sync.sh -> syncs das aufgenommene Foto, um einige Ordner, in denen sie geändert werden für 1 auf dem zweiten Bildschirm angezeigt wird, 2. Upload auf Dropbox und 3 gedruckt werden. Auch eine andauernde Schleife.

terminal-sync.sh -> kopiert die aufgenommenen Fotos mit dem zweiten Bildschirm-Terminal, wo sie in einer Galerie gezeigt werden. Es ist auch eine immerwährende while-Schleife.

Hier können Sie inotifywait verwenden, um auf die Dateiverfügbarkeit zu warten, bevor die Datei verarbeitet wird.

Sie sollten überprüfen, mit der Spitze, welches Skript eigentlich CPU verbrauchen und warum. Sobald Sie das Skript identifiziert haben und warum es CPU verbraucht, können Sie beginnen, eine optimierte Möglichkeit zu finden, denselben Job auszuführen