Yeniden başlatmadan Tek Kullanıcı Moduna girmenin yolu var mı?


8

Eski günlerde-UNIX'te olduğu gibi, sadece bir komut gönderebildiğinizde initve kendi kullanımınız için kabuklu siyah metin ekranına baktığınızda. ;)


10.11.6 ile 10.14.2 arasındaki çeşitli OS X / macOS sürümlerini kullanarak, SIP etkinleştirilmiş ve etkinleştirilmemiş, farklı fiziksel ve sanal makineler kullanılarak yapılan saatler süren testlerden sonra, düzinelerce kez sudo launchctl reboot userspace -sbir kez başarılı ve kullanılabilir bir kullanıcı alanı oluşturmadı reboot! Basitçe söylemek gerekirse, belgelerin kaynağından bağımsız olarak, yukarıda belirtilen komut işe yaramadı ve işe yaramadı ve bu nedenle bu sorunun cevabının kabul edildiğine bakılmaksızın, işe yaramadı ve aşağı oylamamın nedeni.
user3439894

cevabım tam olarak çalıştığı yerde “El Captian üzerinde test edildi” ifadesini kullandı. Cevap şimdi ağır bir şekilde düzenlenmiştir, ancak bu yine de düzeltme geçmişinde bulunabilir. Basitçe söylemek gerekirse, başka bir şey üzerinde çalışacağını söylemedim
poige

1
El Capitan'ın yanı sıra Sierra, High Sierra ve Mojave altında da test yaptım. Hiçbir durumda sudo launchctl reboot userspace -sGUI'deyken Terminal'den başarılı ve kullanışlı bir kullanıcı alanı yeniden başlatması gerçekleştirmedi! Lütfen sadece dikkate değer zaman, enerji ve çaba harcadığım için değil, aynı zamanda bunu yapmakla yükümlü olmadığım düşüşüm için de geçerli bir neden ifade ettim. El Capitan ve sonrasında çalışan üç farklı Apple sisteminde, bir MacBook Pro, iMac ve MacBook Air'in, burada veya belgelerde tanıtıldığı gibi benim için çalışmadığı gerçeği ! AFAIC Benim için hikayenin sonu.
Ekim 1919

Benim için çalıştı. Buraya: 15.6.0 x86_64 root:xnu-3248.73.11~1/RELEASE_X86_64 x86_64. Ne saygısından bahsediyorsun? :) Ya da saygı hakkında konuşursanız, sözlerime olan saygınız nerede? :)
poige

Düzenlenmiş cevap. Video kaydını düşünmek ve youtube'a yüklemek. ;)
poige

Yanıtlar:


5

Gereksinimlerinize bağlı olarak, kullanıcı adı istemek için oturum açma penceresini değiştirmeyi deneyin ve ardından kullanıcı olarak > konsol girin .

Bu muhtemelen 10.10'da kaldırıldı, bu nedenle kurtarma veya ssh'a önyükleme yapmanız veya bu eski init tipi bypass aradığınız şey değilse bir terminal uygulaması kullanmanız gerekir.

Ayrıca, bu, modern macOS'ta önyükleme işleminin başlarında gerçekleşmesi gereken gerçek kök tek kullanıcı modu değildir.


Görünüşe göre soruma gerçek bir cevap buldum. Kontrol edecek ve cevap
verecek

@poige Kesinlikle Mojave üzerinde çalışmak için alamıyorum (ama varsayılan yazma ile karışıklık vermedi.) Tam olarak ne istediğinizi yapmak için cevabımı düzenlemek için çekinmeyin veya test ettikten sonra daha temiz bir cevap en iyisi ise kendi cevap .
bmike


> Önyükleme yapılan işletim sisteminden yeniden başlatma olmadan tek kullanıcı moduna geçmenin belgelenmiş bir yolu yoktur. bu yanlış iddia.
poige

Merhaba @poige, tek kullanıcı modunun ne olduğu konusunda karışıklık olabilir. Bir kişi yanıtınızı destekledi ve 5 kişi reddetti. Ekleyecek başka bir şeyiniz varsa yeni bir yanıt almaktan çekinmeyin mi? Wikipedia, macOS'ta tek kullanıcı modunun yalnızca Önyükleme öncesi gerçekleştiğinden bahsediyor, bu yüzden size tek kullanıcı olarak düşündüğünüzde benden farklı bir anlam taşıyorum. Bana yardımcı olabilir miyim bildirin
bmike

3

teori

Özetle, man launchctlçekirdek yeniden başlatma olmadan Tek Mod'a geçişi sağlayacak şekilde belgelenmiştir . Örneğin, SHELL komutuyla Terminal penceresinden dağıtılabilir:

sudo launchctl reboot userspace -s

Uygulama

El Capitan

El Capitan'da çalıştığı Macbook Air 2015'te test ettim. Ama aynı zamanda bir kullanıcıdan El Capitan'a yönelik girişimlerinin başarısız olduğunu bildirdim. Aklıma gelen tek fark, farklı grafik modu veya daha fazlası gerektiren Retina. Retina'nın El Capitan'ı çalıştıran Macbook'um yok, bu yüzden şimdilik böyle bir sürümü destekleyen daha fazla bir şey söyleyemem.

Yüksek Sierra, Mojave

High Sierra ile yaptığım denemeler, bu işlevin artık (El Capitan ile karşılaştırıldığında) çalışmadığını gösteriyor . Yine, Retina nedeniyle olabilir, net değil. Mojave de çalışmaz.


Katkıda bulunanın ayrıntılı açıklaması¹

Çalışırken tam bir yeniden başlatma yapmadan, yukarı ve çalışan bir macOS'tan tek kullanıcı moduna geri dönmenin bir yolu vardır

sudo launchctl reboot userspace -s

Bu, Darwin çekirdeğini yeniden başlatmadan macOS'un yalnızca kullanıcı alanı bölümünü yeniden başlatır ve eski gün UNIX'lerindeki çalışma düzeyini değiştirmeye eşdeğerdir.

Ek ayrıntılar için bkz 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.

Bu, teknik düzeyde sudo launchctl reboot userspace -sarama yapmaz reboot(2)ve bu nedenle yeniden başlatma olmadan tek kullanıcı moduna geçmenin bir yolunu sağlar.

Ayrıca Tek kullanıcı modundaki Wikipedia makalesinde şunlar yazılıdır:

OS X El Capitan ve sonraki macOS sürümlerinde, mod sudo launchctl reboot userspace -sTerminal'deki komutla tek kullanıcı moduna geri döndürülebilir ve sistem komutla tek kullanıcı modunda tamamen yeniden başlatılabilir sudo launchctl reboot system -s.


1 - @ nohillside'in izniyle

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.