Der Kassenserver der Bäckerei Reinsdorf steht in der Backstube in Halle und versorgt vier Filialen. Seit Montag bekommt die Kasse in Nietleben keinen Artikelstamm mehr, und der Dienst, der ihn ausliefert, steht in der Prozessliste. Er läuft. Er arbeitet nicht, und das sind zwei Fragen, die zwei verschiedene Befehle beantworten.
ps meldet, was läuft; systemctl meldet, was laufen soll. Ein Prozess kann da sein und nichts Nützliches tun, und ein Dienst kann eingerichtet, aktiviert, gescheitert und sechsmal in der Minute neu gestartet sein, während eine Prozessliste ihn bei jedem Blick brav anzeigt. Innerhalb der IT ist dies die Schicht zwischen der Maschine und allem, was darauf läuft, und sie kennt den Unterschied.
Vier Aufgaben, und keine davon ist der Schreibtisch
Ein Betriebssystem ist nicht die Oberfläche. Es entscheidet, welcher Prozess als Nächstes rechnen darf, wer welche Datei öffnen darf, wie viel Speicher jeder halten darf und was geschieht, wenn zwei gleichzeitig dasselbe Gerät wollen. Nichts davon ist sichtbar, solange es funktioniert, und deshalb sind die Aufgaben eines Betriebssystems der Teil, der den Rest lesbar macht.
In Halle kam die Antwort nicht aus der Prozessliste, sondern von der Dienstverwaltung.
systemctl status kassendienst
Die Kopfzeile lautet Active: activating (auto-restart) (Result: exit-code). Der Dienst startet, scheitert, wird wieder gestartet, und wer im falschen Augenblick in die Prozessliste sieht, findet ihn dort stehen. Die Begründung steht nicht darin.
journalctl -u kassendienst -n 50
Das sind die letzten fünfzig Zeilen eines einzigen Dienstes, und darin liegt der Unterschied zwischen dem Lesen eines Protokolls und dem Lesen von allem, was die Maschine je gesagt hat. Die fünfzig Zeilen nannten einen Rechtefehler auf dem Ablageverzeichnis, das am Wochenende auf ein Netzlaufwerk umgezogen war.
Drei Ziffern, und jede Ziffer ist eine Summe
Rechte auf einem Unix-System sind keine Liste. Sie sind drei Ziffern, und jede Ziffer ist eine kleine Summe. Vier ist lesen, zwei ist schreiben, eins ist ausführen, und die Ziffer ist die Summe davon für ein Publikum: erst der Eigentümer, dann die Gruppe, dann alle übrigen.
chmod 644 heißt: der Eigentümer schreibt, alle anderen lesen. Sechs ist vier plus zwei. Die beiden Vieren dahinter sind Lesen für die Gruppe und Lesen für den Rest. Ein Verzeichnis braucht das Ausführungsrecht, sonst lässt es sich nicht betreten, und deshalb erzeugt 644 auf einem Ordner die eigentümliche Verwirrung eines Verzeichnisses, das da ist, aufgelistet wird und sich nicht öffnen lässt. Für einen Ordner ist 755 die gewöhnliche Antwort.
Das Ablageverzeichnis in Halle war mit 644 und einem fremden Eigentümer auf dem Netzlaufwerk angekommen. Zwei Befehle schlossen den Vorgang, und keiner davon war ein Neustart.
Rechte vererben sich unter Unix nicht nach unten
Hier stockt es, und zwar an einer Stelle, die dieser Markt besonders zuverlässig trifft. Die Ausbildung lehrt den Windows-Arbeitsplatz und die Domäne, die Prüfung fragt Gruppenrichtlinien ab, und der erste eigene Server steht dann bei einem deutschen Hoster und läuft Linux. Wer aus dieser Richtung kommt, sucht dort eine Vererbung, die es nicht gibt.
Eine Windows-Zugriffssteuerungsliste reicht ihre Einträge an alles weiter, was unterhalb neu entsteht. Rechte vererben sich unter Unix nicht nach unten. Ein frisch erzeugter Ordner bekommt, was die umask des erzeugenden Prozesses übrig lässt, und sonst nichts. Wer oben einmal chmod anwendet und annimmt, der Rest folge, hat auf einem Netzlaufwerk genau das gebaut, was in Halle stand. Der teure Teil des Übergangs zwischen Windows und Linux sind die Rechte, nicht die Befehle.
Der Zustand D nimmt kein Signal an
Die zweite Verwirrung betrifft einen Prozess, der nicht verschwinden will. Ein Prozess im Zustand D wartet auf ein Gerät und nimmt kein Signal an. Er schläft nicht im gewöhnlichen Sinn, sondern steckt in einem Systemaufruf, der noch nicht zurückgekehrt ist, und ein Signal wird erst zugestellt, wenn er es tut. Immer härtere Signale hinterherzuschicken bewirkt nichts und erzeugt den Eindruck, die Maschine sei hinüber.
Hinüber ist meistens etwas darunter: ein Netzlaufwerk, das weggegangen ist, oder eine sterbende Platte. Der Prozess ist das Symptom, und die richtige Bewegung ist herauszufinden, worauf er wartet. In Halle trat der Zustand einmal auf, an einem Auftrag, der auf das Netzlaufwerk zeigte, nachdem es unter ihm ausgehängt worden war.
Drei Systeme, zwei Fragen
Was übertragbar ist, und was zweimal gelernt werden muss
Zwei Fragen: Gehört das System zur Unix-Familie, und wird es einzeln oder zentral verwaltet. Das Paar entscheidet, wie viel von einer Stelle in die nächste mitgeht.
einzeln verwaltet
zentral verwaltet
Es sagt nichts darüber, welches besser ist, und über das Feld, in dem jemand arbeitet, entscheidet weit öfter der Arbeitgeber als er selbst.
Die Kasse hat seit 2020 eine Frist
Ein gescheiterter Dienst ist in diesem Betrieb kein Schönheitsfehler. Seit 2020 braucht jede elektronische Kasse eine zertifizierte Sicherheitseinrichtung, die jeden Vorgang unveränderbar aufzeichnet, und seit demselben Jahr gilt die Belegausgabepflicht. Ein Kassendienst, der seine Aufzeichnungen nicht wegschreiben kann, ist deshalb kein Fall für Dienstagnachmittag. Die Unterscheidung zwischen Laufen und Arbeiten bekommt hier eine Frist, und das ist der Unterschied zu derselben Störung in einem Land ohne diese Pflicht.
Vier Felder, und den Platz wählt der Arbeitgeber
Fast niemand wählt sein Betriebssystem nach Argumenten. Es kommt mit der Stelle, mit der Hardware oder mit der Fachsoftware, die laufen muss. Die brauchbare Fähigkeit ist, auf dem zu arbeiten, das gerade dasteht.
Am weitesten trägt die Kommandozeile. Wer sich auf einem Linux-Server bewegen kann, verwaltet macOS fast ohne Umlernen, denn darunter liegt dieselbe Familie. Windows teilt sie nicht: Die Shell heißt PowerShell, die Rechte sind Zugriffssteuerungslisten statt drei Ziffern, und die zentrale Verwaltung ist ein Verzeichnisdienst mit einer Richtlinienmaschine, für die es auf der Unix-Seite keine Entsprechung gibt. Wer nur im Terminal gearbeitet hat, nimmt wenig Syntax mit und dafür die Gewohnheit, die Maschine zu fragen statt zu raten. Die ist mehr wert.
Die Bäckerei fährt alle drei, was gewöhnlich ist und nicht besonders: Der Kassenserver läuft Linux, die Büromaschine läuft Windows wegen der Buchhaltung, und das Notebook der Inhaberin ist ein Mac. Ausprobieren lässt sich das auf einer einzigen Maschine, denn virtuelle Maschinen kosten nichts und sind umkehrbar.
Was 2026 zu öffnen ist
Auf jedem Linux der letzten zehn Jahre ist systemd die Dienstverwaltung und journalctl der Weg, ihr Protokoll zu lesen. Beide ersetzten Init-Skripte und verstreute Textdateien, also genau das, was Anleitungen von vor etwa 2015 noch beschreiben. Der Wechsel war unbeliebt, und deshalb steht ein großer Teil dieser älteren Ratschläge bis heute weit oben in den Suchergebnissen.
Auf der Windows-Seite beantwortet icacls dieselbe Frage wie chmod, nur mit Vererbung, und in PowerShell tut es Get-Acl. Beide gehören zum System und kosten nichts. icacls ersetzte cacls, das mit langen Pfaden und mit vererbten Einträgen nicht umgehen konnte, und das in älteren Anleitungen weiterhin auftaucht.
Zum Ausprobieren eines fremden Systems kosten VirtualBox und auf Apple-Hardware UTM nichts. Beide ersetzten die zweite Maschine unter dem Schreibtisch, und aus Deutschland ist an keinem von beiden etwas eingeschränkt.
Offen bleibt, was zu tun ist, wenn der Fehler gar nicht auf der Maschine sitzt. Dann geht es um Netzwerktechnik und um die Frage, welche Schicht gerade lügt.