Wenn ein GitHub Actions Mac Runner nach einem Neustart offline ist, prüfen Sie zuerst Host-Erreichbarkeit, Runner-Dienst und Verbindung zu GitHub getrennt; löschen Sie die Runner-Registrierung nicht vorschnell. Diese Reihenfolge gilt besonders für unbeaufsichtigte CI-Knoten: Erst wenn ein repräsentativer Workflow einen Auftrag angenommen, ausgeführt und sein Ergebnis zurückgemeldet hat, sollte der Knoten wieder Produktionsjobs erhalten.
Für Plattformingenieure: Sie müssen herausfinden, ob macOS gestartet ist und der Runner-Dienst tatsächlich läuft.
Für IT-Verantwortliche: Sie brauchen eine wiederholbare Fehlerabgrenzung statt eines einmaligen Neustarts.
Für Release-Verantwortliche: Ein Online-Status allein belegt nicht, dass Builds oder Veröffentlichungen wieder funktionieren.
GitHub Actions Runner offline: Ist der Mac erreichbar oder nicht?
Beginnen Sie bei der Meldung „Offline“ nicht mit einer Reparatur des Runner-Kontos. GitHub nennt als mögliche Ursachen unter anderem einen nicht erreichbaren Host, eine nicht laufende Runner-Anwendung oder eine fehlende Kommunikation mit GitHub. Der Status beschreibt also nicht automatisch einen Registrierungsfehler. Die offizielle GitHub-Anleitung zu Runner-Status und Fehlerbehebung ordnet diese Fälle als unterschiedliche Fehlerquellen ein.
Prüfen Sie zuerst die Mac-Seite. Ist der Rechner über den vorgesehenen Fernzugriff erreichbar? Gibt es einen aktuellen Eintrag im Betriebsprotokoll, der einen erfolgreichen Systemstart bestätigt? Falls der Host nicht erreichbar ist, ist die Runner-Konfiguration zunächst nicht der richtige Ansatzpunkt. Klären Sie Stromversorgung, Systemstart, Zugang und gegebenenfalls notwendige Entsperr- oder Anmeldeschritte mit dem zuständigen Betriebsteam.
Ist der Mac erreichbar, vergleichen Sie den Host-Zustand mit dem Runner-Eintrag in GitHub. Notieren Sie, ob der Runner dort als offline geführt wird und ob sich dieser Zustand zeitlich mit dem Neustart deckt. Ein erfolgreicher Fernzugriff beweist lediglich, dass der Host erreichbar ist. Er beweist weder, dass der Runner-Prozess gestartet wurde, noch, dass dieser die GitHub-Dienste erreicht.
Warum wird der Runner nach dem Mac-Neustart als offline angezeigt?
Weil „Offline“ mehrere Ebenen abbilden kann: Der Host kann ausgefallen sein, die Runner-Anwendung kann beendet sein oder die Verbindung von der Anwendung zu GitHub kann scheitern. Trennen Sie diese Möglichkeiten anhand des Host-Zugriffs, des lokalen Dienstestatus und der Diagnoseprotokolle. Die Statusmeldung allein reicht nicht, um die Ursache festzustellen.
Betriebshinweis: Dokumentieren Sie vor Änderungen den angezeigten Runner-Namen, den Host-Zustand und den Zeitpunkt der letzten bekannten erfolgreichen Ausführung. So lässt sich später unterscheiden, ob eine Maßnahme den Fehler behoben oder nur den Zustand verändert hat.
macOS launchd: Läuft der Dienst im passenden Kontext?
Ein erreichbarer Mac kann den Runner trotzdem nicht gestartet haben. Prüfen Sie deshalb, ob der GitHub Runner als Dienst eingerichtet ist und ob dieser Dienst nach dem Neustart läuft. Im Runner-Verzeichnis können Sie den von GitHub vorgesehenen Dienststatus mit ./svc.sh status abfragen. Die Dokumentation zur Konfiguration der Runner-Anwendung unter macOS beschreibt die Verwaltung des Dienstes.
Ist kein Dienst konfiguriert, kann die Runner-Anwendung zuvor interaktiv gestartet worden sein. Ein solcher Start ist nicht gleichbedeutend mit einem dauerhaft eingerichteten Systemdienst. Prüfen Sie die Installations- und Startinformationen des konkreten Knotens, statt aus einem früheren erfolgreichen Workflow auf einen automatischen Neustart zu schließen.
Auch der Startkontext ist relevant. Apple unterscheidet bei launchd zwischen benutzerbezogenen LaunchAgents und systembezogenen LaunchDaemons. Diese werden nicht im selben Kontext ausgeführt. Ein Prozess, der erst nach einer Benutzeranmeldung startet, ist daher kein verlässlicher Nachweis für einen Dienst, der bereits ohne interaktive Anmeldung verfügbar sein soll. Die Abgrenzung erläutert Apples Dokumentation zu Service Management.
Wie lässt sich unter macOS prüfen, ob der GitHub Actions Runner-Dienst gestartet wurde?
Prüfen Sie zuerst mit ./svc.sh status, ob der von GitHub konfigurierte Dienst als laufend gemeldet wird. Danach gleichen Sie den Befund mit dem Eintrag in GitHub und den lokalen Runner-Protokollen ab. Ein laufender Prozess oder eine vorhandene launchd-Konfiguration allein beweist noch nicht, dass der Runner erfolgreich verbunden ist.
Wenn der Dienst gestoppt ist, ermitteln Sie zunächst, warum er nicht gestartet wurde. Prüfen Sie Dienstkonfiguration, Startkontext und die zugehörigen lokalen Protokolle. Starten Sie den Dienst erst dann nach dem dokumentierten Verfahren neu und kontrollieren Sie anschließend erneut seinen Status. Wiederholte Neustarts ohne Ursachenprüfung können die Diagnose erschweren, wenn etwa ein Startfehler oder ein falscher Benutzerkontext bestehen bleibt.
Runner-Prozess aktiv, GitHub-Verbindung gestört
Meldet der Mac den Runner-Dienst als aktiv, während GitHub den Knoten weiterhin offline zeigt, wechseln Sie zur Verbindungsebene. Prüfen Sie DNS-Auflösung, Proxy-Vorgaben, TLS-Verbindung und den Zugriff auf die von GitHub Actions benötigten Dienste. Eine funktionierende allgemeine Internetverbindung reicht nicht als Nachweis: Der Runner muss selbst die notwendigen Ziele erreichen können.
Führen Sie die von GitHub dokumentierte Netzwerkprüfung aus und betrachten Sie deren Ergebnisse zusammen mit den Runner-Diagnoseprotokollen. Die Anleitung zur Überwachung und Fehlerbehebung beschreibt diese Prüfrichtung. Bei einer Proxy-Umgebung gleichen Sie die tatsächliche Runner-Konfiguration mit der GitHub-Dokumentation zur Proxy-Nutzung für selbst gehostete Runner ab. Ein Proxy, der für eine interaktive Shell eingerichtet ist, muss nicht automatisch im Kontext des Dienstes wirksam sein.
Suchen Sie anschließend in den Diagnoseprotokollen nach Verbindungs- oder Authentifizierungsfehlern. GitHub beschreibt, wie sich die Debug-Protokollierung für Workflows aktivieren lässt. Aktivieren Sie zusätzliche Protokollierung gezielt und begrenzen Sie deren Zugriff: Diagnoseausgaben können interne Pfade oder Konfigurationsdetails offenlegen. Prüfen Sie deshalb die Ablage und Weitergabe entsprechend den internen Datenschutz- und Sicherheitsvorgaben, bevor Sie Protokolle an andere Stellen übertragen.
Was ist zuerst zu prüfen, wenn der Runner-Prozess läuft, GitHub ihn aber offline zeigt?
Prüfen Sie, ob genau der Dienstprozess DNS, Proxy und TLS-Verbindung zu den erforderlichen GitHub-Diensten nutzen kann. Vergleichen Sie danach die Netzwerkprüfung und die Runner-Diagnoseprotokolle. Deaktivieren Sie TLS-Prüfungen nicht als vermeintliche Reparatur: Das verschleiert ein Zertifikats- oder Vertrauensproblem und schwächt die Verbindungssicherheit, ohne die eigentliche Ursache zu beheben.
Sicherheitsgrenze: Verändern Sie für die Diagnose keine Produktionssignierungsdaten und geben Sie keine Zugangsdaten in gemeinsam zugängliche Protokolle oder ungeschützte Tickets. Eine Verbindungskorrektur muss die geltenden Unternehmensvorgaben für Zertifikate, Proxy und Geheimnisse weiterhin erfüllen.
Runner online, Auftrag wartet: Stimmen Labels und Berechtigungen?
Ein online gemeldeter Runner kann für einen bestimmten Workflow trotzdem nicht infrage kommen. GitHub ordnet Jobs anhand der Anforderungen in runs-on, der verfügbaren Runner-Labels und der Runner-Gruppen zu. Prüfen Sie deshalb nicht nur den Online-Status, sondern auch, ob der Workflow die Labels des konkreten Mac-Knotens anfordert und ob der Knoten für das Repository beziehungsweise den Workflow zugelassen ist.
Vergleichen Sie den Workflow mit der Runner-Konfiguration in GitHub. Achten Sie auf abweichende Schreibweisen, entfernte oder geänderte Labels sowie auf eine Gruppenzuordnung, die den Zugriff einschränkt. Die Dokumentation zur Auswahl eines Runners für einen Job erklärt die Zuordnung über Anforderungen und Runner-Konfiguration. Ergänzend beschreibt GitHub die Verwaltung von Runner-Labels und die Zugriffssteuerung über Runner-Gruppen.
| Beobachtung | Wahrscheinliche Prüfebene | Nächster Schritt |
|---|---|---|
| Mac ist nicht erreichbar | Host, Systemstart oder Fernzugriff | Betriebsprotokoll und Host-Zugang prüfen |
| Mac erreichbar, Dienst gestoppt | Dienstkonfiguration oder Startkontext | ./svc.sh status und launchd-Kontext prüfen |
| Dienst aktiv, Runner offline | DNS, Proxy, TLS oder GitHub-Kommunikation | Netzwerkprüfung und Diagnoseprotokolle auswerten |
| Runner online, Job wartet | Labels, Gruppe oder Repository-Zugriff | runs-on, Runner-Labels und Gruppenrechte vergleichen |
| Job läuft, Build scheitert | Workflow, Werkzeuge oder Arbeitsbereich | Fehler im Job-Protokoll untersuchen; nicht als Offline-Fehler behandeln |
Alte Registrierung oder verwaister Dienst: Erst abgleichen, dann ändern
Mehrere Zustände können ähnlich aussehen: ein alter Runner-Eintrag in GitHub, ein Dienst, der noch auf eine frühere Konfiguration verweist, oder ein Name, der nicht mehr zum tatsächlich gestarteten Runner passt. Vergleichen Sie daher den angezeigten Runner-Namen in GitHub mit dem Namen und der Dienstkonfiguration auf dem Mac. Prüfen Sie außerdem, ob ein zweiter Eintrag oder eine weitere Runner-Installation dieselbe Rolle beansprucht.
Eine erneute Registrierung ist kein allgemeiner Reparaturschritt. Sie verändert den Zustand, kann aber einen Netzwerkfehler, einen nicht gestarteten Dienst oder eine falsche Job-Zuordnung unangetastet lassen. Entfernen und konfigurieren Sie den Runner nur neu, wenn die Befunde tatsächlich auf eine beschädigte oder veraltete Registrierung hindeuten und die Auswirkungen auf Gruppen, Labels sowie Repository-Zugriff geklärt sind. Für das Vorgehen gelten die GitHub-Anweisungen zur Runner-Konfiguration.
Entscheidung nach Befund
- Wenn der Mac nicht erreichbar ist: Behandeln Sie den Vorfall als Host- oder Fernzugriffsproblem. Ändern Sie die Runner-Registrierung nicht.
- Wenn der Mac erreichbar, der Dienst aber gestoppt ist: Prüfen Sie Dienstinstallation und
launchd-Kontext, bevor Sie den Dienst starten. - Wenn der Dienst läuft, GitHub aber offline meldet: Untersuchen Sie Netzwerk, Proxy und Diagnoseprotokolle. Registrieren Sie nicht vorsorglich neu.
- Wenn GitHub den Runner online zeigt, der Workflow aber wartet: Prüfen Sie
runs-on, Labels, Gruppen und Zugriffsrechte. - Wenn die Registrierung nachweislich veraltet oder beschädigt ist: Planen Sie die erneute Konfiguration kontrolliert und dokumentieren Sie die vorherige Zuordnung.
Damit erhalten Sie eine belastbare Trennung zwischen Host-Ausfall, Dienstproblem, Verbindungsfehler und fehlerhaftem Routing. Bei jeder Änderung sollte die zuständige Plattformverantwortung festhalten, welcher Befund die Maßnahme ausgelöst hat und woran der Erfolg anschließend erkannt wird.
Produktionsfreigabe erst nach einem echten Workflow-Test
Ein wieder online angezeigter Runner ist noch kein wiederhergestellter CI-Betrieb. Vor der Freigabe muss ein Workflow tatsächlich an den betreffenden Mac geroutet werden, starten und die vorgesehenen Schritte abschließen. Verwenden Sie dafür eine repräsentative, risikoarme Aufgabe, die keine produktiven Signierungsdaten verändert. Prüfen Sie nicht nur den Start, sondern auch den Zugriff auf den benötigten Arbeitsbereich, die aufgerufenen Werkzeuge und die Rückmeldung des Ergebnisses an GitHub.
Führen Sie die Abnahme in einer nachvollziehbaren Reihenfolge durch:
- Bestätigen Sie den Host-Zugriff und notieren Sie den aktuellen Zustand des Macs.
- Prüfen Sie den Runner-Dienst lokal und gleichen Sie seinen Status mit der Anzeige in GitHub ab.
- Kontrollieren Sie, ob der Runner die erforderlichen Netzwerkziele erreichen kann.
- Verifizieren Sie Labels, Gruppenzuordnung und Repository-Zugriff für den vorgesehenen Workflow.
- Starten Sie einen isolierten Testjob mit denselben relevanten Routing-Anforderungen wie die Produktionsaufgabe.
- Kontrollieren Sie Job-Annahme, Ausführung, Werkzeugaufrufe und Ergebnisrückmeldung.
- Geben Sie den Runner erst nach erfolgreicher Prüfung gemäß dem internen Release-Verfahren wieder für Produktionsjobs frei.
Dokumentieren Sie dabei auch den Rückfallweg: Welche Runner-Alternative wird verwendet, wenn der Test nicht erfolgreich ist, und wer darf die Produktionsfreigabe erteilen? Legen Sie diese Zuständigkeiten vor dem nächsten ungeplanten Neustart fest. So wird aus einer einmaligen Reparatur ein wiederholbarer Wiederherstellungsprozess, ohne eine bestimmte Verfügbarkeit oder Wiederherstellungsdauer zu unterstellen.
Wenn ein einzelner Mac-Knoten bereits vorhanden ist, aber seine Wiederherstellung von manuellen Eingriffen abhängt, vergleichen Sie diese Betriebsform mit einem verwalteten Remote-Mac-Modell. Ein selbst betriebenes Gerät kann für dauerhafte, vorhersehbare Auslastung und unmittelbaren physischen Zugriff passend sein. Es bindet Ihr Team jedoch an Beschaffung, lokale Wartung und die eigene Organisation des Fernzugriffs; ein einzelner Knoten bleibt zudem ein einzelner Fehlerpunkt. Bei einer gemieteten Lösung müssen Sie stattdessen vorab Übergabe, Zugang, Datenschutz, Verantwortlichkeiten und Wiederherstellungsverfahren anhand konkreter Anbieterinformationen prüfen.
Für einen zeitlich begrenzten Test oder einen zusätzlichen CI-Knoten kann MESHLAUNCH eine Alternative sein, sofern die tatsächlichen Liefer- und Betriebsbedingungen zu Ihren Anforderungen passen. Verschaffen Sie sich zunächst einen Überblick über die Remote-Mac-Angebote von MESHLAUNCH und gleichen Sie die verfügbaren Angaben anschließend mit Ihrer Abnahme- und Sicherheitscheckliste ab. Für konkrete Mac-Optionen können Sie außerdem die Mietoptionen für Mac mini von MESHLAUNCH prüfen. Bei dauerhaft hoher Last oder notwendigem physischem Gerätezugriff kann ein eigener Mac weiterhin die passendere Wahl sein.