Bjørn Riis war mit seinem Song “Where Are You Now” bereits in “Hörenswert” vertreten. Nach und nach wühle ich mich auch durch die Alben von Airbag, deren großartiges 2016’er Werk “Disconnected” hier gerade Dauerschleifen dreht.
Mit needrestart gibt es für Lunix-basierte Hosts eine Anwendung, die sich in den dpkg,- rpm- oder pacman-Mechanismus einklinkt und nach einer Aktualisierung des Systems mitteilt, ob und welche Systemkomponenten einen Neustart benötigen.
Neben zahlreichen Konfigurationsmöglichkeiten bietet needrestart auch einen Nagios-kompatiblen Ausgabemodus zur Einbindung in das Monitoring-System:
# needrestart -p
OK - Kernel: 6.1.0-22-amd64, Services: none, Containers: none, Sessions: none|Kernel=0;0;;0;2 Services=0;;0;0 Containers=0;;0;0 Sessions=0;0;;0
Checkmk ist in der Lage, über MRPE auch Nagios-kompatible Skripte zu verwenden, allerdings geht es auch einfacher mit Hilfe eines Local Checks:
A local check can be written in any programming language supported by the target host. The script must be constructed so that each check produces a status line consisting of four parts. Here is an example:
0 “My service” myvalue=73 My output text which may contain spaces
Die Skripte werden im Verzeichnis “/usr/lib/check_mk_agent/local/” abgelegt und automatisch vom Agenten mitverarbeitet.
Für needrestart reicht ein kleiner Wrapper, der das Ergebnis des Checks in einen numerischen Status wandelt und die Meldung selbst als Statusdetail ausgibt. Der Dienstname wird auf “needrestart” gesetzt und auf die Übermittlung von Metriken verzichtet.
#!/usr/bin/bash
NEEDRESTART="$(/usr/sbin/needrestart -p)"
if [[ "$NEEDRESTART" =~ ^OK ]]; then
STATE=0
elif [[ "$NEEDRESTART" =~ ^WARN ]]; then
STATE=1
elif [[ "$NEEDRESTART" =~ ^CRIT ]]; then
STATE=2
else
STATE=3
fi
echo "$STATE \"needrestart\" - $NEEDRESTART"
Nachdem das Skript angelegt und ausführbar gemacht wurde, muß auf dem Host nur noch ein Service-Discovery durchgeführt werden damit der neue Service übernommen werden kann.
Keine Ahnung, was sich der Packungsdesigner dabei gedacht hat, aber die optische Aufmachung des 95-teiligen Klemmbausteinsets “Lucky Luke: Badewanne” erinnert eher an eine Packung Soßenbinder als an Kinderspielzeug. Für alle, welche beim Thema Klemmbausteine gleich an einen dänischen Spielwarenhersteller denken, trägt die Packung prominent den Hinweis “Kompatibel mit allen handelsüblichen Klemmsteinen”.
In der Schachtel finden sich neben drei Tütchen mit eben diesen Steinen auch die Bauanleitung sowie ein Stickerbogen und eine kleine Platte, um Lucky Luke als Einzelfigur aufzustellen - das Augenmerk fällt allerdings mehr auf das “CE”-Zeichen und die Herstellerinformationen als auf eine stimmungsvolle Präsentation des Westernhelden.
Daß Sticker heutzutage leider an der Tagesordnung sind, ist auch bei anderen Firmen im Klemmbaustein-Bereich normal. Daß diese allerdings über mehrere Einzelteile geklebt werden sollen, habe ich bisher noch selten erlebt. Dies steht einer kreativen Wiederverwendung der Bauteile im Weg, denn mit Auseinandernehmen der Bauteile ist auch der Aufkleber hinfällig.
Die Qualität der Teile ist überraschend gut. Im Gegensatz zu anderen Herstellern fallen diese beim Zusammenbau nicht direkt wieder auseinander und sind sie alle mit “normalen” Kraftaufwand zusammensteckbar.
Letztendlich ist “Lucky Luke: Badewanne” ein nettes kleines Set für Fans des Westernhelden, das mit der Westernthematik ein Thema aufgreift, welches bei anderen Klemmbaustein-Herstellern aktuell nicht allzu präsent ist und alleine deshalb schon etwas Abwechslung bietet.
Auf einem Raspberry Pi hatte ich das Problem, daß ALSA bei jedem Neustart des Systems die Reihenfolge der Ausgabegeräte neu sortierte:
$ cat /proc/asound/cards
0 [Headphones ]: bcm2835_headpho - bcm2835 Headphones
bcm2835 Headphones
1 [PMA50 ]: USB-Audio - PMA-50
D & M Holdings Inc. PMA-50 at usb-3f980000.usb-1.1.3, high speed
2 [vc4hdmi ]: vc4-hdmi - vc4-hdmi
vc4-hdmi
Mal war der PMA-50 als Karte 1 verfügbar, mal wurde ihm die 2 zugewiesen und als Folge daraus war das in der “alsa.conf” festgelegte Ausgabegerät nicht immer das von mir eigentlich gewünschte und der externe DAC blieb stumm.
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
ALSA kann statt der Nummer der Karte (wie in gefühlt 99% aller Beispiele zu finden) auch deren Namen verwenden werden. Eine Liste aller gültigen Geräte findet sich unter “/proc/asound/”:
$ ls -l /proc/asound/
dr-xr-xr-x 4 root root 0 25. Jun 08:42 card0
dr-xr-xr-x 4 root root 0 25. Jun 08:42 card1
dr-xr-xr-x 8 root root 0 25. Jun 08:42 card2
...
lrwxrwxrwx 1 root root 5 25. Jun 08:42 Headphones -> card0
...
lrwxrwxrwx 1 root root 5 25. Jun 08:42 PMA50 -> card2
...
lrwxrwxrwx 1 root root 5 25. Jun 08:42 vc4hdmi -> card1
...
Nach einer Anpassung der “alsa.conf” funktioniert der USB-DAC unabhängig von der zugewiesenen Gerätenummer:
pcm.!default {
type hw
card PMA50
}
ctl.!default {
type hw
card PMA50
}
Zugegebermaßen kann ich die Begeisterung für Simon & Garfunkel so überhaupt nicht nachvollziehen, aber das “Bridge Over Troubled Water”-Cover von Johnny Cash finde ich großartig, genau wie den Rest von “American IV: The Man Comes Around”.