Gibt es die Möglichkeit, ohne Neustart in den Einzelbenutzermodus zu gelangen?


8

Wie bei Old-Days-UNIX, wenn Sie nur einen Befehl an senden können initund auf einen schwarzen Textbildschirm mit Shell für Ihren eigenen Gebrauch starren. ;)


Nach vielen Stunden des Testens mit verschiedenen Versionen von OS X / macOS von 10.11.6 bis 10.14.2 mit und ohne aktiviertem SIP haben verschiedene physische und virtuelle Maschinen nicht ein einziges Mal mehrere Dutzend Mal sudo launchctl reboot userspace -seinen 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.
user3439894

Meine Antwort lautete genau "auf El Captian getestet", wo es funktioniert. Die Antwort ist jetzt stark bearbeitet, kann aber immer noch in der Revisionshistorie gefunden werden. Einfach gesagt, ich habe nicht gesagt, dass es bei irgendetwas anderem
funktionieren

1
Ich habe unter El Capitan sowie Sierra, High Sierra und Mojave getestet. In keinem Fall wurde sudo launchctl reboot userspace -sein erfolgreicher und nutzbarer Neustart des Userspace vom Terminal in der GUI durchgeführt! Bitte respektieren Sie, dass ich nicht nur viel Zeit, Energie und Mühe aufgewendet habe, sondern auch einen gültigen Grund für meine Ablehnung angegeben habe, zu dem ich natürlich nicht verpflichtet bin. Die Tatsache, dass auf drei verschiedenen Apple-Systemen, einem MacBook Pro, iMac und MacBook Air, auf denen El Capitan und später ausgeführt wird, bei mir nicht funktioniert hat, wie hier oder in der Dokumentation angegeben! AFAIC Für mich das Ende der Geschichte.
user3439894

Hat für mich gearbeitet. Hier : 15.6.0 x86_64 root:xnu-3248.73.11~1/RELEASE_X86_64 x86_64. Über welchen Respekt sprichst du? :) Oder wenn du über Respekt sprichst, wo ist dein Respekt vor meinen Worten? :)
Poige

Antwort bearbeitet. Denken Sie über Videoaufnahmen nach und laden Sie sie auf YouTube hoch. ;)
Poige

Antworten:


5

Versuchen Sie je nach Ihren Anforderungen, das Anmeldefenster zu ändern, um nach einem Benutzernamen zu fragen, und geben Sie dann als Benutzer > console ein .

Dies wurde wahrscheinlich um 10.10 Uhr entfernt, sodass Sie zur Wiederherstellung oder zum SSH booten oder eine Terminal-App verwenden müssen, wenn diese Umgehung des alten Init-Typs nicht das ist, was Sie suchen.

Dies ist auch kein echter Root-Einzelbenutzermodus, der zu Beginn des Startvorgangs unter modernem MacOS erfolgen muss.


Anscheinend habe ich eine echte Antwort auf meine Frage gefunden. Wird überprüfen und antworten
poige

@poige Ich kann es auf keinen Fall dazu bringen, mit Mojave zu arbeiten (aber ich habe mich nicht mit den Standardeinstellungen herumgespielt.) Sie können meine Antwort jederzeit bearbeiten, um genau das zu erreichen, was Sie möchten, oder selbst antworten, wenn eine sauberere Antwort nach dem Testen am besten ist .
bmike


> Es gibt keine dokumentierte Möglichkeit, ohne Neustart von einem gebooteten Betriebssystem in den Einzelbenutzermodus zu wechseln. Das ist eine falsche Behauptung.
Poige

Hallo @poige, vielleicht gibt es Verwirrung darüber, was der Einzelbenutzermodus ist. Eine Person hat Ihre Antwort positiv und 5 negativ bewertet. Fühlen Sie sich frei, eine neue Antwort zu geben, wenn Sie noch etwas hinzufügen möchten? In dieser Wikipedia wird erwähnt, dass der Einzelbenutzermodus unter macOS nur vor dem Start erfolgt. Daher bin ich offen dafür, dass Sie eine andere Bedeutung haben als ich für einen Einzelbenutzer. Lassen Sie mich wissen, ob ich helfen kann
bmike

3

Theorie

Kurz gesagt, es gibt eine dokumentierte man launchctlMö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 -skein 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 -sin 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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.