सिद्धांत
संक्षेप में, man launchctl
एकल मोड w / o कर्नेल रिबूट में इस तरह के स्विच को पूरा करने के लिए एक दस्तावेज है । यह एक शेल-कमांड के साथ टर्मिनल विंडो से, उदाहरण के लिए, तैनात किया जा सकता है:
sudo launchctl reboot userspace -s
अभ्यास
एल कैपिटन
मैंने इसे मैकबुक एयर 2015 में एल कैपिटान में परीक्षण किया जहां यह काम करता था। लेकिन मेरे पास एक उपयोगकर्ता की रिपोर्ट भी है कि अल कैपिटन पर उनके प्रयास हालांकि असफल थे। एकमात्र अंतर जो मैं सोच सकता हूं कि रेटिना है जिसमें विभिन्न ग्राफिक्स मोड या सोमेसुच की आवश्यकता होती है। मेरे पास रेटिना के साथ एल कैपिटान के साथ मैकबुक नहीं है, इसलिए समय के लिए मैं इस तरह के संस्करण के समर्थन में कुछ और नहीं बता सकता।
हाई सिएरा, मोजावे
हाई सिएरा के साथ मेरी कोशिश दिखा रही थी कि यह कार्यक्षमता अब काम नहीं कर रही है (एल कैपिटन की तुलना में)। फिर से, यह रेटिना के कारण हो सकता है, यह स्पष्ट नहीं है। Mojave यह भी काम नहीं कर रहा है।
एक योगदानकर्ता द्वारा पूरी व्याख्या
रनिंग से पूर्ण रीबूट किए बिना, ऊपर चल रहे macOS से सिंगल यूज़र मोड में वापस जाने का एक तरीका है
sudo launchctl reboot userspace -s
यह डार्विन कर्नेल को फिर से शुरू किए बिना केवल macOS के उपयोगकर्ता भाग को फिर से लॉन्च करेगा और पुराने-यूनिक्स पर रनवे को बदलने के बराबर है।
अतिरिक्त विवरण के लिए देखें 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
एक बार भी एक सफल और प्रयोग करने योग्य उपयोगकर्ताओं को बेहतर नहीं बनाया। रिबूट! सीधे शब्दों में कहें, दस्तावेज के स्रोत की परवाह किए बिना, पूर्वोक्त आदेश काम नहीं करता है और इसलिए काम नहीं करता है और इसलिए इस सवाल का जवाब स्वीकार किए जाने के बावजूद, मुझे यह काम करने के लिए नहीं मिला और मेरे पतन का कारण है।