Springe zum Inhalt

Blog

3

Für den Betrieb des dezentrale Netzwerk Friendica, welches auch hier auf einer eigenen Instanz läuft, müssen periodisch Nachrichten verschickt und notwendige andere Aufgaben abgearbeitet werden. Früher konnte dazu ein Cron-Job eingerichtet oder alternativ ein Addon installiert werden, welche diese Aufgaben periodisch ausführte. Mittlerweile hat Friendica dafür einen eigenen Daemon bekommen, dessen Einbindung in ein Debian-System mit systemd hier kurz vorgestellt wird.

Der Update-Daemon erzeugt ein PID-File, dessen Name und Pfad in der Konfigurationsdatei "config/local.config.php" eingestellt wird:

 'system' => [
  'pidfile' => '/run/friendica/daemon.pid',
 ],

Beim Systemstart existiert obiges Verzeichnis noch nicht. Debian verwaltet flüchtige Dateien und Verzeichnisse mit systemd-tmpfiles. Damit dieses Verzeichnis beim Systemstart automatisch angelegt wird, kann in die Datei "/etc/tmpfiles.d/friendica.conf" Folgendes eingetragen werden:

d /run/friendica 0755 www-data www-data -

Das Verzeichnis wird mit den angegebenen Berechtigungen und Eigentümer angelegt. Damit das Verzeichnis sofort zur Verfügung steht, wird folgender Befehl verwendet:

systemd-tmpfiles --create --prefix /run/friendica

Anschließend wird das Unit-File für systemd unter "/etc/systemd/system/friendica-daemon.service" mit folgendem Inhalt angelegt:

[Unit]
Description=Friendica daemon
After=network.target mysqld.service
Requires=network.target remote-fs.target nss-lookup.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/srv/friends
Type=simple
StandardOutput=null
StandardError=syslog
ExecStart=/usr/bin/php ./bin/daemon.php start
ExecStop=/usr/bin/php ./bin/daemon.php stop
PIDFile=friendica/daemon.pid
PrivateTmp=true
InaccessibleDirectories=/home /root /boot /opt /mnt /media
ReadOnlyDirectories=/etc /usr
Restart=always

[Install]
WantedBy=multi-user.target

Der Pfad bei WorkingDirectory muss auf den Pfad der lokalen Friendica-Installation angepasst werden. Anschießend werden die Unit-Files von systemd neu geladen:

systemctl daemon-reload

Jetzt kann der Update-Daemon mit systemd gestartet werden:

systemctl start friendica-daemon.service

Nach dem erfolgreichen Start schreibt der Update-Daemon seine PID in die oben angegebene Datei "/run/friendica/daemon.pid". Die gleiche PID sollte in der Ausgabe des folgenden Befehls angezeigt werden:

systemctl status friendica-daemon.service

Sollte bis hier hin alles korrekt verlaufen sein, kann der Update-Daemon für den automatischen Start beim Systemstart aktiviert werden:

systemctl enable friendica-daemon.service

Wie bereits seit langem angekündigt, wurden in der Firefox-Version 74 die Protokolle TLS 1.0 und 1.1 deaktiviert. Beim Zugriff auf Webseiten oder Geräte, welche nur diese schon 20 Jahre alten Protokolle unterstützen, erhält man folgende Fehlermeldung:

Betroffen sein dürften viele alten Geräte, unter anderem auch die in HP-Servern fest eingebaute "Integrated Lights-Out (iLO)"-Schnittstellen, deren Versionen iLO 2 und iLO 3 nur max. TLS1.1 unterstützen. Ein Update ist auch nicht möglich, das der fest verbaute Speicher für neuere RSA-Bibliotheken anscheinend nicht ausreicht.

(Wir haben so alte und durchaus noch stabil laufende HP-Server im Einsatz, die ich nun nicht mehr mit Firefox verwalten kann.)

Nach mehr als 20 Jahren geht das Projekt SETI@home, welches sich der Suche nach außerirdischem Leben widmete, am 31. März 2020 zu Ende. Interessierte konnten ihren Rechner bzw. dessen ungenutzte Rechenzeit zur Verfügung stellen. Automatisch verteilt und analysiert wurden Aufnahmen großer Radioteleskope. Nun sind alle Aufnahmen fertig analysiert und die Ressourcen werden anderen Projekten zugeführt.

Ich war bereits ab Tag Zwei nach dem offiziellen Beginn der alten Plattform mit dabei und habe über die Jahre (mit Pausen) ca. 3 Trillionen FLOPs, also ca. 3 ExaFLOPs, abgeliefert - eine Drei mit achtzehn Nullen.

Hat Spaß gemacht und Danke für den Fisch ;)

3

Achtung für alle, die WordPress mit dem Plugin Crayon zum Darstellen von Quelltexten einsetzen und auf Debian 10 (Buster) updaten wollen. Mit Buster kommt PHP 7.3 mit, welches ein paar Anpassungen im leider seit langem nicht mehr gepflegte Crayon erfordert.

Die Anpassungen können manuell durchgeführt werden. Alternativ kann auch ein komplett angepasstes Plugin von Github heruntergeladen werden.

Nach dem Update von Stretch auf Buster braucht OpenSSH, speziell auf VMs, schon mal gerne mehrere Minuten zum Starten. Grund dafür ist, dass systemd alle Dienste ziemlich parallel startet und für OpenSSH-Verschlüsselungsroutinen einfach noch nicht genug Entropie vorhanden ist. OpenSSH wartet deshalb erst einmal ab und lässt noch keine Verbindungen von außen zu. Erst wenn im Kernel-Log die Meldung "random: crng init done" auftaucht, ist die Initialisierung abgeschlossen und OpenSSH startet komplett.

Probleme beim Systemstart betreffend der noch nicht vohandener Entropie können auch bei Webservern auftreten, die wiederrum SSL-Bibliotheken verwenden und diese ebenfalls noch nicht initialisieren können.

Eine einfache Lösung für diese Probleme ist die Installation von haveged, einem User-Space-Daemon, welcher beim Systemstart Entropie liefert, sobald der "Füllstand" von /dev/random unter eine gewisse Grenze fällt.

Siehe hierzu auch: