Faragiri

Betriebssysteme lernenIT

Warum die Prozessliste einen gescheiterten Dienst brav anzeigt, welcher Befehl ihn verrät, und was die drei Ziffern hinter chmod wirklich sagen.

7Abschnitte
5Min. Lesezeit
2Tiefe

Die Einteilung

Vier Aufgaben, die es nie erwähnt, und keine kommt zuerst

Sie liegen auf einer Bahn, weil ein Fehler in einer von ihnen als Fehler einer anderen ankommt.

Wer bekommt was, und wann
  • Wer als Nächstes rechnet
  • Wer was öffnen darf
  • Wie viel Speicher jeder hält
  • Wer das Gerät bekommt
  • 01Wer als Nächstes rechnetZuteilung der Rechenzeit. Sichtbar nur als Maschine, die sich träge anfühlt, ohne erkennbar etwas zu tun
  • 02Wer was öffnen darfRechte. Drei Ziffern, und die Ursache der meisten Tickets, die nach kaputter Software aussehen
  • 03Wie viel Speicher jeder hältUnd was geschieht, wenn es nicht reicht: erst auslagern, dann einen Prozess beenden
  • 04Wer das Gerät bekommtDrucker, Platten und Sockel, und die Warteschlange vor jedem davon

Der Schreibtisch fehlt ganz. Er ist das, was die meisten mit dem Namen ihres Betriebssystems meinen, und für alles hier ist er das Unwichtigste.

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.

Unix-Familieeigene Familie

einzeln verwaltet

macOSUnix unter einer Oberfläche. Was im Terminal sitzt, geht von Linux geradewegs mit.
Windows am PlatzEigene Regeln, eigene Shell, und der größte Anteil aller Supportarbeit

zentral verwaltet

Linux auf ServernZu hundert Stück verwaltet, über Konfiguration statt von Hand
Windows in der DomäneRichtlinie, Verzeichnisdienst und Abbilder, und das ist ein anderer Beruf als der Arbeitsplatz

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.

Daneben

Darüber