Teoria
Em poucas palavras, existe uma man launchctl
maneira documentada de realizar essa mudança para o Modo Único sem a reinicialização do kernel. Pode ser implantado, por exemplo, na janela Terminal com um comando SHELL:
sudo launchctl reboot userspace -s
Prática
o capitão
Testei-o em El Capitan em um Macbook Air 2015, onde funcionava. Mas também tenho um relatório de um usuário de que suas tentativas no El Capitan foram malsucedidas. A única diferença que consigo pensar é na Retina, que requer um modo gráfico diferente ou algo assim. Não tenho Macbook com Retina executando o El Capitan, por enquanto não posso contar mais nada para apoiar essa versão.
High Sierra, Mojave
Minhas tentativas com High Sierra estavam mostrando que essa funcionalidade não está mais funcionando (em comparação com El Capitan). Novamente, pode ser que seja devido a Retina, não está claro. O Mojave também não funciona.
Explicação completa de um colaborador¹
Existe uma maneira de voltar ao modo de usuário único a partir de um macOS em execução e sem executar uma reinicialização completa executando
sudo launchctl reboot userspace -s
Isso reiniciará apenas a parte do espaço do usuário do macOS sem reiniciar o kernel do Darwin e é equivalente a alterar o nível de execução nos UNIXs antigos.
Para detalhes adicionais, consulte 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.
Isso significa que em um nível técnico sudo launchctl reboot userspace -s
não é necessário reboot(2)
e, portanto, fornece uma maneira de alternar para o modo de usuário único sem uma reinicialização.
Também o artigo da Wikipedia sobre o modo de usuário único diz:
No OS X El Capitan e versões posteriores do MacOS, o modo pode ser revertido para o modo de utilizador único com o comando sudo launchctl reboot userspace -s
no terminal, e o sistema pode ser totalmente reinicializado no modo de utilizador único com o comando sudo launchctl reboot system -s
.
1 - Cortesia de @ nohillside
sudo launchctl reboot userspace -s
um espaço de usuário útil e bem-sucedido reiniciar! Simplificando, independentemente da fonte da documentação, o comando mencionado acima não funcionou e não funciona e, portanto, independentemente do fato de a resposta a essa pergunta ter sido aceita, no entanto, não achei que funcionasse e é a razão do meu voto negativo.