Programm bauen
Im letzten Schritt bauen und installieren Sie das Überwachungsprogramm zusammen mit Libquickmail. Auf der Heft-DVD finden Sie die zwei Dateien vipstest2.tar.gz und installandbuild.sh. Beide kopieren Sie per SSH oder FTP in ein beliebiges Verzeichnis auf dem RasPi. Im folgenden Beispiel diente dazu Ordner /home/pi/work/.
Anschließend melden Sie sich per SSH auf dem RasPi an und setzen Rechte des Installationsskripts so, dass Sie es ausführen können (Listing 6, erste Zeile). Dann wechseln Sie in das Verzeichnis und rufen das Skript auf (zweite und dritte Zeile). Das Skript braucht ein paar Minuten, um alles zu bauen. Kontrollieren Sie die Ausgabe auf eventuell auftretende Fehlermeldungen. Das Skript entfernt alle alten Kopien von früheren Installationen. Dabei sichert es eine vorliegende Ini-Datei und schreibt sie nach der Installation zurück.
Listing 6
$ chmod +x ~/work/installandbuild.sh $ cd ~/work $ ./installandbuild.sh
Nach der Installation bereiten Sie die Datei VipsTest2.ini im Unterverzeichnis VipsTest2 vor – achten Sie hier auf Groß- und Kleinschreibung. Am besten kopieren Sie die Vorlage VipsTest2.ini.template als VipsTest2.ini und bearbeiten Letztere dann per Editor. Alle mit “<” und “>” markierten Passagen gilt es anzupassen, die Größer-Kleiner-Zeichen müssen Sie dabei entfernen. Login-Daten und Passwörter lassen sich wieder mit passwordCrypto schützen.
Zum Testen der Konfiguration starten Sie nun einen ersten Kurzdurchlauf, der im Erfolgsfall Ausgaben wie in Listing 7 produziert. Nach einigen Runden brechen Sie den Test mit [Strg]+[C] ab, wobei es bis zu 10 Sekunden dauern kann, bis das Programm tatsächlich anhält. Im Fehlerfall gibt die Datei .../VipsTest2/README eine Reihe von Hilfestellungen.
Listing 7
$ src/vipstest2 0 files deleted from ./outDir vipstest_main.cpp started. Archive directory /media/usbstick/camera_archive/ accessible, creating camera sub-directories Creating CurlResetMutex singleton TremithousaCamera: processed 10 files, 0.200000 sec/file, cache size 178 Vipstest2 Status Report: 2017-02-27 09:13:53 TremithousaCamera: processed 20 files, 0.300000 sec/file, cache size 419 ... Ctrl-C or stop detected. Program interrupted
Läuft alles zu Ihrer Zufriedenheit, richten Sie das Überwachungsprogramm als Dienst ein, damit es seine Aufgabe unbeaufsichtigt im Hintergrund erledigt. Zu diesem Zweck kopieren Sie die Datei vipstest2system nach /etc/init.d/ und starten das Programm dann (Listing 8). Um es wieder zu stoppen, ersetzen Sie start> durch stop, für einen Neustart durch restart. Alle Ausgaben schreibt das Programm in die Protokolldatei des Linux-System-Daemons. Der Befehl in Listing 9 zeigt die letzten Einträge und typische Outputs in dieser Datei.
Listing 8
$ sudo cp /Pfad/zu/vipstest2system /etc/init.d $ sudo systemctl start vipstest2system
Listing 9
$ tail -f --lines=400 /var/log/daemon.log | grep vipstest2 Feb 27 10:45:20 raspberrypi vipstest2system[14218]: called vipstest2system with parameter start Feb 27 10:45:20 raspberrypi vipstest2system[14218]: Starting vipstest2: pidPath: /var/run/vipstest2.pid Starting vipstest2, pidPath: /var/run/vipstest2.pid : Feb 27 10:45:20 raspberrypi systemd[1]: Started LSB: Start vipstest2 at boot time. Feb 27 10:45:20 raspberrypi vipstest2: 0 files deleted from ./outDir Feb 27 10:45:20 raspberrypi vipstest2: vipstest_main.cpp started. Feb 27 10:45:20 raspberrypi vipstest2: Archive directory /media/usbstick/camera_archive/ accessible, creating camera sub-directories Feb 27 10:45:21 raspberrypi vipstest2: Creating CurlResetMutex singleton Feb 27 10:45:22 raspberrypi vipstest2: sending Vipstest2 Status Report: 2017-02-27 10:45:22 Feb 27 10:52:28 raspberrypi vipstest2: Camera TremithousaCamera : restarting curl
Ausblick
Aktuell stürzt das Überwachungsprogramm gelegentlich noch aufgrund eines Speicherproblems in der Glib-Bibliothek ab. Bis jetzt ist es dem Autor nicht gelungen, die Ursache und eine Lösung für das Problem zu finden. Deswegen gibt es als Workaround in der Anwendung eine Routine, die den Dienst nach einem Crash automatisch neu startet. Falls Sie Fragen zum Projekt haben oder Hilfe benötigen, können Sie sich über die E-Mail-Adresse [email protected] direkt an den Autor wenden. Er freut sich generell über eine kurze Information, dass Sie die Software einsetzen, sodass er Sie über Updates auf dem Laufenden halten kann.
Der Autor
David Singleton, ein Software-Ingenieur mit langjähriger Erfahrung in C++ und Java, wohnt und arbeitet seit über 20 Jahren in Deutschland. Er programmiert für Windows- und Linux-Systeme sowie für Android und jetzt Raspberry Pi. Er ist Mitglied der britischen Institution of Engineering and Technology und hat einen M.Sc. in Computer Science.
Infos
- Libcurl: https://curl.haxx.se/libcurl
- Libquickmail: https://sourceforge.net/projects/libquickmail
- VIPS: http://www.vips.ecs.soton.ac.uk
- Eclipse IDE for C/C++ Developers: http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/heliossr2
- Proftpd: http://www.proftpd.org
- Raspberry Pi als FTP-Server: https://raspberry.tips/server-2/raspberry-pi-als-ftp-server-betreiben
- Filezilla: https://filezilla-project.org/
- WinSCP: https://winscp.net/eng/docs/lang:de
- Curl-Dokumentation: https://curl.haxx.se/download.html
- Libvips: http://www.vips.ecs.soton.ac.uk/supported/current
- Github des Libvips-Projekts: https://github.com/jcupitt/libvips





