Теорія
Коротше кажучи, є документально підтверджений man launchctl
спосіб здійснити такий перемикання в режим одномодерного без перезавантаження ядра. Його можна розгорнути, наприклад, з вікна терміналу за допомогою команди SHELL:
sudo launchctl reboot userspace -s
Практика
El Capitan
Я тестував його в El Capitan на Macbook Air 2015, де він працював. Але я також маю повідомлення від користувача, що його спроби на «Ель-Капітан» були невдалими. Єдина відмінність, яку я можу придумати, - це Retina, який вимагає іншого графічного режиму або чогось іншого. У мене немає Macbook з Retina під керуванням El Capitan, тому поки що я не можу сказати нічого більше на підтримку такої версії.
Висока Сьєрра, Мохаве
Мої спроби з High Sierra показали, що ця функціональність більше не працює (порівняно з El Capitan). Знову ж, можливо, це пов’язано із сітківкою, не ясно. Mojave також не працює.
Ретельне пояснення дописувача¹
Існує спосіб повернутися до єдиного користувальницького режиму з оновлених macOS, не виконуючи повну перезавантаження, запустивши
sudo launchctl reboot userspace -s
Це відновить лише частину простору користувача macOS, не перезавантажуючи ядро Дарвіна, і еквівалентно зміні рівня запуску в UNIX-тах старого дня.
Додаткову інформацію див 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.
Це означає, що на технічному рівні sudo launchctl reboot userspace -s
не дзвонить, reboot(2)
а тому забезпечує спосіб переходу в єдиний користувальницький режим без перезавантаження.
Також у статті Вікіпедії про режим одиночного користувача сказано:
У OS X El Capitan та пізніших випусках macOS режим може бути повернений до режиму однокористування за допомогою команди sudo launchctl reboot userspace -s
в терміналі, і система може бути повністю перезавантажена в режимі однокористування за допомогою команди sudo launchctl reboot system -s
.
1 - люб’язно надано @ nohillside
sudo launchctl reboot userspace -s
успішну та зручну простору користувача перезавантажте! Простіше кажучи, незалежно від джерела документації, вищезазначена команда не працювала і не працює, і тому незалежно від того, що відповідь на це питання була прийнята, я не вважав, що це працює, і це є причиною мого поступу.