Theorie
Kurz gesagt, es gibt eine dokumentierte man launchctl
Möglichkeit, einen solchen Wechsel in den Einzelmodus ohne Kernel-Neustart durchzuführen. Es kann beispielsweise über das Terminalfenster mit einem SHELL-Befehl bereitgestellt werden:
sudo launchctl reboot userspace -s
Trainieren
El Capitan
Ich habe es in El Capitan auf einem Macbook Air 2015 getestet, wo es funktioniert hat. Ich habe aber auch einen Bericht von einem Benutzer, dass seine Versuche auf El Capitan erfolglos waren. Der einzige Unterschied, den ich mir vorstellen kann, ist Retina, die einen anderen Grafikmodus oder ähnliches erfordert. Ich habe kein Macbook mit Retina, auf dem El Capitan ausgeführt wird, daher kann ich vorerst nichts mehr zur Unterstützung einer solchen Version sagen.
Hohe Sierra, Mojave
Meine Versuche mit High Sierra haben gezeigt, dass diese Funktionalität nicht mehr funktioniert (im Vergleich zu El Capitan). Vielleicht liegt es auch an Retina, es ist nicht klar. Mojave hat es auch nicht funktioniert.
Gründliche Erklärung durch einen Mitwirkenden¹
Es gibt eine Möglichkeit, von einem laufenden und laufenden MacOS aus wieder in den Einzelbenutzermodus zurückzukehren, ohne einen vollständigen Neustart durch Ausführen durchzuführen
sudo launchctl reboot userspace -s
Dadurch wird nur der Userspace-Teil von macOS neu gestartet, ohne dass der Darwin-Kernel neu gestartet werden muss. Dies entspricht einer Änderung des Runlevels unter UNIX-Versionen der alten Zeit.
Weitere Details finden Sie unter man launchctl
:
reboot [system|userspace|halt|logout|apps|reroot ]
Instructs launchd to begin tearing down userspace. With no argu-
ment given or with the system argument given, launchd will make
the reboot(2) system call when userspace has been completely
torn down. With the halt argument given, launchd will make the
reboot(2) system call when userspace has been completely torn
down and pass the RB_HALT flag, halting the system and not ini-
tiating a reboot.
With the userspace argument given, launchd will re-exec itself
when userspace has been torn down and bring userspace back up.
This is useful for rebooting the system quickly under conditions
where kernel data structures or hardware do not need to be re-
initialized.
-s When rebooting the machine (either a full reboot or
userspace reboot), brings the subsequent boot session
up in single-user mode.
Dies bedeutet, dass auf technischer Ebene sudo launchctl reboot userspace -s
kein Anruf erfolgt reboot(2)
und daher die Möglichkeit besteht, ohne Neustart in den Einzelbenutzermodus zu wechseln.
Auch der Wikipedia-Artikel zum Einzelbenutzermodus sagt:
In OS X El Capitan und späteren Versionen von macOS kann der Modus mit dem Befehl sudo launchctl reboot userspace -s
in Terminal in den Einzelbenutzermodus zurückgesetzt und das System im Einzelbenutzermodus mit dem Befehl vollständig neu gestartet werden sudo launchctl reboot system -s
.
1 - Mit freundlicher Genehmigung von @ nohillside
sudo launchctl reboot userspace -s
einen erfolgreichen und nutzbaren Benutzerbereich erstellt Neustart! Einfach ausgedrückt, unabhängig von der Quelle der Dokumentation, hat der oben genannte Befehl nicht funktioniert und funktioniert nicht. Unabhängig von der Tatsache, dass die Antwort auf diese Frage akzeptiert wurde, fand ich sie dennoch nicht und ist der Grund für meine Ablehnung.