Aus einem alten Mac wird ein Dauerarbeiter

Christian Drexler

Ich habe ein älteres MacBook, das vor zwei Jahren aufgehört hat, ein Laptop zu sein. Es liegt mit zugeklapptem Deckel in einem Regal, führt geplante Jobs und gelegentlich einen Build aus, und ich fasse es per SSH an, wenn etwas Aufmerksamkeit braucht. Es hat nichts gekostet, weil ich es schon hatte, und es ist zuverlässiger als die kleine Cloud-Kiste, die es ersetzt hat. Hier ist die Einrichtung, in der Reihenfolge, in der ich sie wieder machen würde.

Ein eigener Benutzer

Leg einen frischen Standardbenutzer für die Jobs an. Nicht dein eigenes Konto, denn dein Konto hat deinen Browser, deinen Schlüsselbund und deine Angewohnheit, dich abzumelden. Der Arbeitsbenutzer besitzt die Skripte, die Logs und sonst nichts. Gib ihm ein Home-Verzeichnis außerhalb von allem, was du synchronisierst.

Automatische Anmeldung

Systemeinstellungen, Benutzer und Gruppen, Automatische Anmeldung, den Arbeitsbenutzer wählen. Ohne das landet ein Neustart (und macOS startet für Updates neu, ob du willst oder nicht) auf dem Anmeldebildschirm, und nichts, was in einer Benutzersitzung läuft, startet. Ist FileVault an, ist die automatische Anmeldung ausgegraut; für eine Regalmaschine im eigenen Netz schalte ich FileVault aus und nehme das in Kauf.

Nie schlafen, Deckel zu

Das ist der Teil, den die meisten Anleitungen nur halb richtig haben. Der zugeklappte Deckel hat seine eigene Regel: Ein MacBook mit geschlossenem Deckel bleibt nur wach, solange es am Strom hängt und sleep im Netzteilprofil abgeschaltet ist.

sudo pmset -c sleep 0 disksleep 0 displaysleep 10
sudo pmset -c womp 1
sudo pmset -a hibernatemode 0

-c ist das Netzteilprofil, und nur das zählt, weil die Maschine nie auf Akku läuft. womp ist Aufwachen bei Netzwerkzugriff. hibernatemode 0 verhindert, dass sie bei dem seltenen Schlaf, den sie noch nimmt, den Speicher auf die Platte schreibt. Prüfen mit pmset -g, in der Ausgabe muss sleep 0 stehen. caffeinate benutze ich nicht als Dauerlösung; wenn ein Job die Maschine sicher wach braucht, packe ich diesen einen Job in caffeinate -i und lasse die Systemregeln bei pmset.

Bildschirmfreigabe aus, Tailscale an

Die Bildschirmfreigabe bleibt aus. Ich brauche den Desktop nie, und ein offener VNC-Port auf einer Maschine, die sich selbst anmeldet, ist eine schlechte Kombination. Entfernte Anmeldung (SSH) bleibt an. Um von außerhalb des Hauses ranzukommen, nutze ich Tailscale: Die Maschine bekommt einen festen Namen und einen verschlüsselten Weg, ohne dass am Router etwas geöffnet wird. Installieren, einmal als Arbeitsbenutzer anmelden, "Bei der Anmeldung starten" anhaken.

Was du nach einem macOS-Update prüfen solltest

Updates setzen mehr zurück, als sie zugeben. Meine Liste, sobald die Maschine wieder da ist:

  • pmset -g zeigt im Netzteilprofil noch sleep 0
  • die automatische Anmeldung zeigt noch auf den Arbeitsbenutzer
  • Entfernte Anmeldung noch an, Bildschirmfreigabe noch aus
  • Tailscale läuft und die Maschine antwortet auf ihren Tailscale-Namen
  • jeder geplante Job hat seit dem Neustart in sein Log geschrieben

Die letzte Zeile ist die, die echte Probleme findet. Ein Job, der ein Jahr lang sauber gestartet ist, kann nach einem Update stehen bleiben, weil auf einem Desktop, den niemand ansieht, ein Berechtigungsdialog aufgegangen ist. Wird ein Log still, schalte die Bildschirmfreigabe für zehn Minuten an, melde dich einmal an, bestätige, was wartet, und schalte sie wieder aus.

Glamourös ist das nicht. Es ist ein alter Laptop mit vier geänderten Einstellungen, und er läuft länger als die meisten Dinge, für die ich bezahle.