Saya ingin menjalankan sesuatu seperti "sleep 3600; logout", tetapi perintah bout logout hanya menutup terminal saat ini. Bagaimana cara menutup sesi Mac OS X penuh?
macos
mac
command-line
Grzegorz Adam Hankiewicz
sumber
sumber
alias maclogout="..."
Tidak ada cara "baik" untuk mengeluarkan pengguna saat ini dari Terminal di OS X. Cara 'berantakan' untuk melakukannya adalah dengan mematikan
loginwindow
proses pengguna tersebut . Ini akan mematikan semua proses (program) yang berjalan di bawah nama pengguna Anda.Melakukan ini adalah proses dua langkah.
Di terminal, jalankan ini:
Lalu lari
Di mana
<pid>
angka pertama (kolom kedua) dari output dari perintah di atas.Gunakan sudo kill -9 untuk memaksa kill proses yang harus saya lakukan agar ini berhasil.
Jadi misalnya ketika kapan output ke perintah pertama adalah:
Lalu saya akan lari
sudo kill 41
, memasukkan kata sandi, dan kemudian saya keluar.Ini dapat digabungkan menjadi alias bash:
sumber
sudo killall loginwindow
? Setidaknya pada 10.7loginwindow
prosesnya tampaknya segera dibuka kembali.Saya tahu ini adalah pertanyaan lama tetapi itu membantu saya, perintah yang saya butuhkan pada OS X 10.8 adalah:
The
awk
pernyataan berbeda dankill -9
memastikan prompt login ditampilkan.sumber
Saya pikir saya telah menemukan jawaban untuk cara Keluar dengan anggun dari Mac OS X tanpa menunggu 2 menit.
Saya tahu bahwa menahan Shift, Opsi, dan Perintah dan menekan "q" akan keluar dengan anggun dan tidak bertanya "jika Anda ingin keluar".
Jadi saya mengkodekan AppleScript melalui Automator ke:
sumber
Jika Anda masuk ke shell sebagai pengguna yang sama yang masuk ke gui mac, Anda bisa mengeluarkan perintah sudo-less:
launchctl reboot logout
yang tidak cukup baik untuk keluar dari pengguna; itu memiliki peringatan tidak mengizinkan aplikasi yang keluar dari mendorong interaksi saat berhenti, namun tampaknya tidak menyiratkan bahwa ini adalah hal yang sama dengan membunuh mereka secara langsung sepertikill
(SIG TERM) ataukill -9
(SIG KILL).sumber
Saya berpendapat bahwa cara "terbaik" pasca OS X 10.9 mungkin
launchctl gui/$(id -u <username>) bootout
Dokumentasi OS X 10.9 pos untuk launchctl ditemukan dengan menjalankan
launchctl help
, tetapi pada dasarnya perintah di atas akan meruntuhkan sesi sementara pengguna. Alternatiflaunchctl user/$(id -u <username>) bootout
menghancurkan sesi permanen yang menjalankan daemon pengguna sementara pengguna tidak login.Ini dapat diuji dengan menjalankan
launchctl gui/$(id -u) bootout
, ini akan segera mengeluarkan Anda dan menyebabkan sistem menampilkan jendela masuk (dengan penundaan).sumber
sudo launchctl bootout gui/XXX
manaXXX
adalah ID pengguna numerik (UID). Perhatikan bahwa i)bootout
sub- perintah harus didahulukan, dan ii)$(id)
mengembalikan lebih banyak daripada UID.Utilitas yang bagus untuk ditambahkan ke Terminal Anda adalah perintah logout , untuk digunakan seperti:
Berikut caranya:
Edit .bash_profile Anda
nano ~/.bash_profile
Tambahkan baris ini:
logout() {sudo launchctl bootout user/$(id -u "$1")}
Simpan file dengan menekan
ctrl+x
Mulai ulang terminal
Kamu siap untuk pergi ;)
sumber