Teoria
In breve, c'è un modo documentato man launchctl
per realizzare un tale passaggio in modalità singola senza riavvio del kernel. Può essere distribuito, ad esempio, dalla finestra Terminale con un comando SHELL:
sudo launchctl reboot userspace -s
Pratica
Il capitano
L'ho provato a El Capitan su un Macbook Air 2015 dove ha funzionato. Ma ho anche riferito a un utente che i suoi tentativi su El Capitan non hanno avuto successo. L'unica differenza che mi viene in mente è Retina che richiede diverse modalità grafiche o qualcosa del genere. Non ho un Macbook con Retina con El Capitan, quindi per il momento non posso dire altro a supporto di tale versione.
Alta Sierra, Mojave
I miei tentativi con High Sierra hanno dimostrato che questa funzionalità non funziona più (rispetto a El Capitan). Ancora una volta, potrebbe essere dovuto Retina, non è chiaro. Anche Mojave non funziona.
Spiegazione approfondita di un collaboratore¹
C'è un modo per tornare alla modalità utente singolo da un macOS attivo e in esecuzione senza eseguire un riavvio completo eseguendo
sudo launchctl reboot userspace -s
Ciò riavvierà solo la parte dello spazio utente di macOS senza riavviare il kernel Darwin ed equivale a cambiare il runlevel sui vecchi UNIX.
Per ulteriori dettagli consultare 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.
Ciò significa che a livello tecnico sudo launchctl reboot userspace -s
non chiama reboot(2)
e quindi fornisce un modo per passare alla modalità utente singolo senza riavviare.
Anche l'articolo di Wikipedia sulla modalità utente singolo dice:
In OS X El Capitan e versioni successive di macOS, la modalità può essere ripristinata alla modalità utente singolo con il comando sudo launchctl reboot userspace -s
in Terminale e il sistema può essere riavviato completamente in modalità utente singolo con il comando sudo launchctl reboot system -s
.
1 - Per gentile concessione di @ nohillside
sudo launchctl reboot userspace -s
preformato uno spazio utente di successo e utilizzabile riavvio! In poche parole, indipendentemente dalla fonte della documentazione, il comando di cui sopra non ha funzionato e non funziona e quindi indipendentemente dal fatto che la risposta a questa domanda sia stata accettata, non l'ho trovata funzionante ed è la ragione del mio downvote.