Quicktipp: Alte Kernel-Images entsorgen

Unter Ubuntu oder dessen Derivaten wie Elementary OS häufen sich mit der Zeit alte Kernel-Images an. Dies ist insbesondere hinderlich, wenn man wie ich (noch) eine separate Boot-Partition besitzt. Mit dem folgenden Kommando kann man einfach alle Kernels außer dem aktuell laufenden entsorgen – also nach einem frischen Kernel-Update bitte erst nach einem Reboot aufrufen, […]

Read More

C: Variable Argumente richtig nutzen

Immer wieder finde ich zu Funktionen mit variablen Argumenten folgende Konstruktion: Hier stellt sich die Frage, warum für fmt unbedingt den Wert 0 erlaubt werden muss? Nach C99-Standard ist va_list ein opaques Objekt und kein Pointer. Weder das Vorinitialisieren der va_list (führt auf vielen Architekturen zu Compiler-Fehlern) noch das Prüfen von fmt auf NULL (Der Wert […]

Read More

Shell: Ausgabe/Eingabeumleitung kompakt

Hier als kleiner Auffrischung/Referenz die gebräuchlichsten Ausgabe- und Eingabeumleitungen: < Datei Datei auf Standardeingabe umleiten << EOT ….. EOT z.B. in Shellskript, mehrzeilige Eingabe bis EOT (end of text) in Standardeingabe umleiten 1> Datei oder > Datei Standardausgabe in Datei umleiten, neue Datei dabei erstellen >> Datei Standardausgabe in Datei umleiten, an evtl. vorhandene Datei anhängen 2> Datei […]

Read More

BASH: Abbrechen von im Hintergrund gestarteten Skripten vermeiden

Shell-Skripte sind beliebt, weil mit wenig Aufwand auch komplexe Aufgaben erledigt werden können. Begonnen mit den Init-Skripten bis hin zu Installationsskripten werden dabei oft Dinge erledigt, bei denen ein (unbemerktes) Fehlverhalten zu sehr schwer zu findenen Problemen führt. Eine häufige Ursache ist, dass zeitaufwändige Aufgaben zwar im Hintergrund gestartet werden, aber nicht sicher gestellt ist, […]

Read More

Nginx: Statische Inhalte bereits vorkomprimiert direkt ausliefern

HTML-Seiten und andere gut komprimierbare Inhalte in komprimierter Form auszuliefern, spart Bandbreite und erhöht die Performance… üblicherweise. Leider gilt dieser Grundsatz nicht für schwache Hardware wie Embedded-ARM-Boards wie den Cubietruck, Raspberry-PI oder Banana-PI. Hier ist es sinnvoll die auszuliefernden Dateien bereits komprimiert auf der Platte abzulegen und so die Prozessorleistung nicht für die Kompression zu […]

Read More