理論
一言で言えば、man launchctl
カーネルを再起動せずにシングルモードにそのような切り替えを行う方法が文書化されています。たとえば、ターミナルウィンドウからSHELLコマンドを使用して展開できます。
sudo launchctl reboot userspace -s
練習
エルキャピタン
El Capitanで動作するMacbook Air 2015でテストしました。しかし、ユーザーからの報告によると、エルキャピタンに対する彼の試みは成功しなかった。私が考えることができる唯一の違いは、異なるグラフィックスモードなどを必要とするRetinaです。私は、El Capitanを実行しているRetinaを搭載したMacbookを持っていないので、当面は、そのようなバージョンをサポートすることについてこれ以上何も言えません。
ハイシエラ、モハベ
High Sierraでの私の試みは、この機能が(El Capitanと比較して)機能していないことを示していました。繰り返しますが、それは網膜によるものかもしれませんが、明確ではありません。Mojaveも機能していません。
投稿者による徹底説明¹
実行して完全な再起動を行わずに、アップおよび実行中のmacOSからシングルユーザーモードに戻す方法があります。
sudo launchctl reboot userspace -s
これにより、Darwinカーネルを再起動せずに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
成功したユーザースペースが形成されなかったリブート!簡単に言えば、ドキュメントのソースに関係なく、前述のコマンドは機能せず、機能しません。したがって、この質問への回答が受け入れられたという事実に関係なく、私はそれが機能することを見つけ