İlk önce o kullanıcıya geçmeden diğer kullanıcı oturumunu kapat


28

Eşim 10.6 çalışan bir MBP'yi açmak için ayrı hesaplar ve hızlı kullanıcı kullanıyor. Bazen biraz RAM boşaltmak için oturumu kapatmak istiyorum, ancak onunla giriş yapmaktan, çıkış yapmaktan, sonra da tekrar giriş yapmaktan kaçınmak istiyorum.

Bir terminal çözümü gördüm ... daha iyi bir yolu var mı? Teşekkürler!


5
"Daha iyi bir yol var" ı daha iyi tanımlamanız gerekir. Benim için, pek fazla (bilgisayar-bilge) bir terminalden daha iyidir. Bir uygulama istiyorsanız, terminal komutunu otomatik veya otomatik komut uygulamasına kaydırın.

2
@ mankoff, iyi nokta! Fakat bu bir Arch Linux forumu değil, bu yüzden bir GUI / dahili çözüm istediğimi varsayalım :). Ama haklısın, sadece bir kabuk betiği yazabilirim.
Richard Herron,

2
Script çözümünün bağlantısı (Göndermeden önce gördüm, ancak 2005'ten beri, bu yüzden bu basit özelliğin GUI'ye dahil edilmiş olduğunu varsaydım). forums.macrumors.com/showthread.php?t=118545
Richard Herron

Bildiğim hiçbir yerleşik gui çözümü yok ...
Robert S Ciaccio 27:10

Tamam, teşekkürler, hepsi! İyi bir senaryo yazdığımda, buraya geri göndereceğim.
Richard Herron,

Yanıtlar:


22

Terminal'i kullanarak loginwindowsürecini öldürebilirsiniz ve açtığı tüm programlar kapatılacak ... ancak bu, sahip olduğu kaydedilmemiş işleri kaybetmesine neden olacak! Aslında, çıkış yapmak için onunla giriş yapmanız gereken asıl sebep budur: Onun olarak giriş yaptığınızda, tüm programları tekrar GUI'ye erişebilir, böylece sizden kapanmayı onaylamanızı, değişiklikleri kaydetmenizi veya başka bir şey almanızı isteyebilir oturumu kapatmadan önce eylem.

Sayfalar, Word, Photoshop veya başka herhangi bir belge gibi bir web tarayıcısı, iTunes, vb. Gibi şeyleri olmadığından eminseniz terminalden deneyebilirsiniz:

kill `ps awwwwux | grep her_short_username | grep loginwindow | grep -v grep | awk "{ print \$2 }"`

OSX 10.10.4’de: (son yorumdan biraz önce düzenleme yapıldı):

export pn=`ps awwwwux | awk '/her_short_username/ && /loginwind[o]w/ { print $2 }'`
sudo kill -9 $pn

1
Ne yaptığını görmek için giriş yapmazsanız, oturumu kapattığınızda neye mal olabileceğini bilmiyorsanız uyarısını kabul edin.
Michael H.

Evet, haklısın. Çoğu zaman web tarama yapıyor ... Ama bir kez olmayacak! Teşekkürler!
Richard Herron,

4
Eğer varsa onu zorla sonlandırmak loginwindowyoluyla Activity Monitor.apprahatlıkla o açık bıraktı başka hangi işlemleri aynı anda bakıyorum olabilir.
Jari Keinänen

1
Yine de Awk'ı çalıştırırsanız, çoklu grepkomutlardan kolayca kaçınılabilir. ps awwwwux | awk '/her_short_username/ && /loginwind[o]w/ { print $2 } | xargs killve ayrıca bkz. iki.fi/era/unix/award.html#grep
tripleee

1
sadece güncellenmiş komutunuzda bir yazım hatası düzeltin, okur sudugerekir sudo.
hoss

18

Sen edebilirsiniz Activity Monitor kullanmak kendi giriş işlemini öldürerek başka çıkış yapmak kullanıcı:

  1. Etkinlik İzleyiciyi Çalıştır
  2. Sağ üstteki filtreye yazın. loginwindow
  3. Kullanıcı sütununda kullanıcının adını içeren satırı tıklayın
  4. Tıklayın Süreci çıkın , ardından Kuvvet çıkın ve şifrenizi yazın.

Bu, Josh'un cevabının daha hoş (?) Bir GUI sürümüdür .

2. adımdan önce, oturumu kapatırken veri kaybedebilecek uygulamaları çalıştırıp çalıştırmadıklarını görmek için diğer kullanıcının koşu işlemlerini inceleyebilirsiniz.


Bunu denedim ve yine de diğer kullanıcıların Faaliyet İzleyicisi'nde çalışan işlemlerini görüyorum. Doğru, hesap kullanıcı değiştirme menüsünde çıkış yapmış görünüyor, ancak çıkış yapmayla aynı şey görünmüyor.
Gorb,

8

Bu komut önerilenden daha basittir ve kullanıcının işlemlerinin tümünü öldürme isteği doğurur (iki kez çalıştırmak zorunda kaldım)

sudo pkill -9 -u user

Eğer sadece o kullanıcı için loginwindows işlemini öldürmek istiyorsanız, aşağıdakileri yapabilirsiniz:

sudo pkill -9 -u user loginwindow


1
Bana göre bu, diğerlerinden daha açık ve daha deyimsel bir cevaptır (unix sysadmin açısından).
Gregg Leventhal

2

Bence bunu yapmanın en basit yolu şudur: sudo killall -9 -u wifes_name


MacOS Mojave kullanarak, yalnızca LoginWindow sürecini değil, aynı zamanda bu kullanıcının sahip olduğu diğer pek çok işlemi de öldüren birçok denemeden sonraki tek çözüm budur. Bu kullanıcı için LoginWindow işlemini tek başına öldürmek, o kullanıcının başlattığı birçok işlemi öldürmedi. Bu çözüm (karımın ismiyle değiştirilerek) oturum açma tarafından başlatılan her işlemden kurtuldu. Makineyi yeniden başlatmaya ve sadece kendinize giriş yapmaya benzer.
i-CONICA

-1

Kanımca, olası veri kaybı RAM'deki kazanca göre daha ağır basmaktadır.

Üstelik, bir işlem boşta iken Unix'in belleği diske çevirebilmesi çok uzun zaman olmuştu.


2
Bir sorun, bir kullanıcı kapatıldığında işlemlerinin boşta kalmamasıdır. CPU ve belleği çiğniyor olabilirler. Oyunlar bu açıdan özellikle kötü görünüyor.
Bennett McElwee

2
Soru, karısından bahseder, ancak aslında daha da iyi bir durum söz konusudur - o gün için zaman sınırını aşmış bir çocuğunuz varsa ve yalnızca oyun oynar ve tasarruf etmesi gerekmeyen başka şeyler yaparsa. Şimdi sadece çocuk olarak giriş yapmak zorunda değilsiniz, sadece çıkış yapmak için de zaman ayırın.
Michael,

@Michael Bu tam olarak benim kullanım durumum . :)
Bennett McElwee 24:15
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.