Comme avec l'ancien UNIX, quand vous pouviez simplement envoyer une commande à init
et vous regardez un écran de texte noir avec un shell pour votre propre usage ;)
Réponses
Trop de publicités?En fonction de vos besoins, essayez de modifier la fenêtre de connexion pour demander un nom d'utilisateur, puis entrez >console en tant qu'utilisateur.
Cela a probablement été supprimé dans la 10.10. Vous devrez donc démarrer en mode de récupération, vous connecter par ssh ou utiliser une application de terminal si ce contournement de type init n'est pas ce que vous recherchez.
De plus, ce n'est pas vrai pour le mode utilisateur unique de Root, qui doit se produire au début du processus de démarrage sur les MacOS modernes.
Théorie
En un mot, il y a un document en man launchctl
moyen d'accomplir un tel passage en mode unique sans redémarrage du noyau. Il peut être déployé, par exemple, à partir d'une fenêtre de Terminal avec une commande SHELL :
sudo launchctl reboot userspace -s
Pratique
El Capitan
Je l'ai testé dans El Capitan sur un Macbook Air 2015 où il a fonctionné. Mais un utilisateur m'a également rapporté que ses tentatives sur El Capitan n'ont pas abouti. La seule différence à laquelle je pense est le Retina qui nécessite un mode graphique différent ou quelque chose comme ça. Je n'ai pas de Macbook avec Retina fonctionnant sur El Capitan, donc pour l'instant je ne peux rien dire de plus à l'appui d'une telle version.
High Sierra, Mojave
Mes essais avec High Sierra ont montré que cette fonctionnalité est ne fonctionne plus (par rapport à El Capitan). Encore une fois, c'est peut-être dû à Retina, ce n'est pas clair. Mojave ne fonctionne pas non plus.
Explication détaillée par un collaborateur¹
Il existe un moyen de revenir au mode mono-utilisateur à partir d'un système MacOS opérationnel sans faire un complet redémarrez en exécutant
sudo launchctl reboot userspace -s
Cela relancera uniquement la partie espace utilisateur de MacOS sans redémarrer le noyau Darwin et équivaut à changer le niveau d'exécution sur les anciens UNIX.
Pour plus de détails, voir 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.
Cela signifie qu'au niveau technique sudo launchctl reboot userspace -s
n'appelle pas reboot(2)
et fournit donc un moyen de passer en mode utilisateur unique sans redémarrage.
Voir aussi l'article de Wikipedia sur Mode utilisateur unique dit :
Dans OS X El Capitan et les versions ultérieures de MacOS, le mode peut être inversé en mode mono-utilisateur avec la commande
sudo launchctl reboot userspace -s
dans Terminal, et le système peut être entièrement redémarré en mode mono-utilisateur avec la commandesudo launchctl reboot system -s
.
1 - Courtoisie de @ nohillside