Systemd Aufbewahrungszeit Journal von Systemd konfigurieren Getestet mit Arch Linux am 25.09.2020 Mit der Zeit wird das Journal (der /var/log/syslog Ersatz von Systemd) immer länger. Es läßt sich aber auch eine Retention konfigurieren, die z.B. die Logs nach einer Woche löscht. Dazu muss die Konfigurationsdatei wie folgt editiert werden: MaxRetentionSec=1week Aus der Manpage zu journald.conf: MaxRetentionSec= The maximum time to store journal entries. This controls whether journal files containing entries older than the specified time span are deleted. Normally, time-based deletion of old journal files should not be required as size-based deletion with options such as SystemMaxUse= should be sufficient to ensure that journal files do not grow without bounds. However, to enforce data retention policies, it might make sense to change this value from the default of 0 (which turns off this feature). This setting also takes time values which may be suffixed with the units "year", "month", "week", "day", "h" or " m" to override the default time unit of seconds. Es gibt noch ein paar andere Möglichkeiten, z.B. nach einer bestimmten Größe zu rotieren. Diese sind in der Manpage dokumentiert: man journald.conf Einfache Kommandos beim Systemstart ausführen [Unit] Description=Disable segment offloading Wants=network-online.target After=network-online.target [Service] Type=oneshot RemainAfterExit = yes ExecStart=/usr/sbin/ethtool -K eno1 tso off gso off ExecStart=/usr/sbin/ethtool -K vmbr0 tso off gso off [Install] WantedBy=multi-user.target Beim Typ „oneshot“ können mehrere ExecStart Befehle konfiguriert werden. Kernel-Modul beim Systemstart laden und Parameter setzen Nur ein kurzes Beispiel, früher™ wurde das über die rc.local gemacht. [Unit] Description = Required settings to mount unencrypted cifs shares After = NetworkManager-wait-online.service network.target network-online.target dbus.service Wants = NetworkManager-wait-online.service network-online.target [Service] Type = oneshot RemainAfterExit = yes ExecStart = /bin/bash -c "modprobe cifs; echo 0x27 > /proc/fs/cifs/SecurityFlags" [Install] WantedBy = multi-user.target NTP-Client in systemd konfigurieren Die NTP-Server werden mit Leerzeichen getrennt in der timesyncd.conf hinterlegt. /etc/systemd/timesyncd.conf [Time] Servers=0.ntp.wavecon.de 1.ntp.wavecon.de Der Service muss noch aktiviert und gestartet werden systemctl enable systemd-timesyncd.service systemctl start systemd-timesyncd.service Über systemctl status systemd-timesyncd.service kann man dann auch sehen ob er tut was er soll. Verzeichnis für PID-File in /run durch systemd anlegen lassen Systemd kann sich um das Anlegen eines Verzeichnisses in /run kümmern, wenn die zu startende Applikation dazu selbst keine Berechtigung hat. Dazu muss der Parameter „RuntimeDirectory“ im Unit-File hinzugefügt werden. Beispiel für Cerebro (eine Monitoring-GUI für Elasticsearch): [Unit] Description=Cerebro [Service] Type=simple User=elasticsearch Group=elasticsearch RuntimeDirectory=cerebro ExecStart=/srv/cerebro/current/bin/cerebro "-Dpidfile.path=/var/run/cerebro/cerebro.pid" Restart=always WorkingDirectory=/srv/cerebro [Install] WantedBy=multi-user.target Das Verzeichnis in /run gehört dem User und der Gruppe, die im Unit-File angegeben sind. Die Modes lassen sich über den Parameter RuntimeDirectoryMode ändern. Kernel-Setting Transparent Hugepage konfigurieren Dieses Setting ist wichtig z.B. für MongoDB oder Redis (auch für andere Datenbanken !). Beide Services wollen das gerne auf 'never' haben. Mit systemd ist das recht einfach. Folgendes in /etc/tmpfiles.d/disable-thp.conf einfügen: #Type Path Mode UID GID Age Argument w /sys/kernel/mm/transparent_hugepage/enabled - - - - never w /sys/kernel/mm/transparent_hugepage/defrag - - - - never und folgendes Kommando ausführen: systemd-tmpfiles --create --prefix=/sys/kernel/mm/transparent_hugepage/ /etc/tmpfiles.d/disable-thp.conf und überprüfen: grep -E . /sys/kernel/mm/transparent_hugepage/defrag /sys/kernel/mm/transparent_hugepage/enabled und hier für schnelles Copy&Paste zusammengefasst cat >/etc/tmpfiles.d/disable-thp.conf </etc/systemd/system.conf.d/10-filelimit.conf <