Đăng xuất người dùng khác trước khi chuyển sang người dùng đó


28

Vợ tôi sử dụng các tài khoản riêng biệt và chuyển đổi người dùng nhanh chóng trên MBP chạy 10.6. Đôi khi tôi muốn đăng xuất cô ấy để giải phóng RAM, nhưng tôi muốn tránh đăng nhập như cô ấy, đăng xuất, sau đó đăng nhập lại với tư cách là tôi.

Tôi đã thấy một giải pháp đầu cuối ... có cách nào tốt hơn không? Cảm ơn!


5
Bạn cần xác định rõ hơn "có cách nào tốt hơn không". Đối với tôi, không nhiều (máy tính khôn ngoan) tốt hơn thiết bị đầu cuối. Nếu bạn muốn có một ứng dụng, chỉ cần bọc lệnh terminal trong một ứng dụng tự động hóa hoặc applescript.

2
@mankoff, điểm tốt! Nhưng đây không phải là một diễn đàn Arch Linux, vì vậy hãy giả sử tôi muốn có một giải pháp GUI / tích hợp :). Nhưng, bạn đã đúng, tôi chỉ có thể viết một kịch bản shell.
Richard Herron

2
Đây là liên kết đến giải pháp tập lệnh (tôi đã thấy nó trước khi đăng, nhưng đó là từ năm 2005, vì vậy tôi cho rằng bây giờ tính năng đơn giản này phải được tích hợp vào GUI). forum.macrumors.com/showthread.php?t=118545
Richard Herron

không có giải pháp gui tích hợp nào mà tôi biết ...
Robert S Ciaccio

OK, cảm ơn, tất cả! Khi tôi viết một kịch bản hay, tôi sẽ đăng lại ở đây.
Richard Herron

Câu trả lời:


22

Sử dụng Terminal, bạn có thể giết loginwindowtiến trình của cô ấy và mọi chương trình cô ấy mở sẽ bị đóng ... nhưng điều này sẽ khiến cô ấy mất bất kỳ công việc chưa được lưu nào mà cô ấy có! Trên thực tế, đây là lý do bạn cần đăng nhập với tư cách là cô ấy để đăng xuất: Khi bạn đăng nhập với tư cách là cô ấy, tất cả các chương trình của cô ấy đều có quyền truy cập vào GUI, vì vậy họ có thể nhắc bạn xác nhận đóng, lưu thay đổi hoặc thực hiện khác hành động trước khi đăng xuất.

Nếu bạn chắc chắn rằng cô ấy chỉ có những thứ như trình duyệt web, iTunes, v.v. mở, không phải Pages, Word, Photoshop hoặc bất cứ thứ gì khác có tài liệu, thì bạn có thể thử từ thiết bị đầu cuối:

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

Trên OSX 10.10.4: (chỉnh sửa nhẹ từ nhận xét cuối cùng):

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

1
Đồng ý với cảnh báo rằng nếu bạn không đăng nhập để xem cô ấy đang làm gì, thì bạn không biết bạn có thể trả giá cho cô ấy bằng cách đăng xuất cô ấy.
Michael H.

Uh, đúng vậy. Hầu hết thời gian nó là duyệt web ... Nhưng một lần nó sẽ không! Cảm ơn!
Richard Herron

4
Nếu bạn buộc chấm dứt cô ấy loginwindowthông qua Activity Monitor.appbạn có thể thuận tiện liếc nhìn cùng lúc những quy trình khác mà cô ấy đã bỏ ngỏ.
Jari Keinänen

1
Nếu cuối cùng bạn vẫn chạy Awk, nhiều greplệnh có thể dễ dàng tránh được. ps awwwwux | awk '/her_short_username/ && /loginwind[o]w/ { print $2 } | xargs killvà xem thêm iki.fi/era/unix/award.html#grep
tripleee

1
chỉ cần sửa một lỗi đánh máy trong lệnh cập nhật của bạn, đọc sudunên đọc sudo.
hoss

18

Bạn có thể sử dụng Trình giám sát hoạt động để đăng xuất người dùng khác bằng cách hủy quá trình đăng nhập của họ:

  1. Chạy Giám sát hoạt động
  2. Trong bộ lọc ở trên cùng bên phải, nhập loginwindow
  3. Nhấp vào hàng có tên người dùng trong cột Người dùng
  4. Nhấp vào Thoát quy trình , sau đó Buộc thoát và nhập mật khẩu của bạn.

Đây chỉ là một phiên bản GUI đẹp hơn (?) Trong câu trả lời của Josh .

Trước bước 2, bạn có thể xem lại các quy trình đang chạy của người dùng khác để xem họ có đang chạy bất kỳ ứng dụng nào có thể mất dữ liệu khi đăng xuất hay không.


Tôi đã thử điều này và vẫn thấy các quy trình của người dùng khác đang chạy trong Activity Monitor. Đúng, tài khoản xuất hiện đăng xuất trong menu chuyển đổi người dùng, nhưng dường như nó không thực sự giống như đăng xuất.
Gorb

8

Lệnh này đơn giản hơn lệnh được đề xuất và nó sẽ có kết quả mong muốn giết tất cả các quy trình của người dùng (tôi đã phải chạy nó hai lần)

sudo pkill -9 -u user

Nếu bạn chỉ muốn giết quá trình đăng nhập cho người dùng đó, bạn có thể làm như sau:

sudo pkill -9 -u user loginwindow


1
Dường như với tôi đây là một câu trả lời rõ ràng tốt hơn và thành ngữ hơn (từ quan điểm unix sysadmin) so với những người khác.
Gregg Leventhal

2

Tôi nghĩ cách đơn giản nhất để làm điều đó là: sudo killall -9 -u wifes_name


Sử dụng MacOS Mojave, đây là giải pháp duy nhất sau khi dùng thử nhiều thứ không chỉ giết chết quy trình LoginWindow, mà nhiều quy trình khác thuộc sở hữu của người dùng đó. Giết quá trình Đăng nhậpWindow cho người dùng đó một mình đã không giết nhiều quá trình khác được bắt đầu bởi người dùng đó. Giải pháp này (thay thế bằng tên của vợ tôi) đã loại bỏ mọi quy trình bắt đầu bằng thông tin đăng nhập của cô ấy. Akin để khởi động lại máy và chỉ cần đăng nhập vào chính mình.
i-CONICA

-1

Theo tôi, việc mất dữ liệu có thể vượt xa khả năng tăng RAM.

Hơn nữa, đã lâu rồi kể từ khi Unix có thể trao đổi bộ nhớ vào đĩa khi một tiến trình không hoạt động.


2
Một vấn đề là khi người dùng bị tắt, các quy trình của họ có thể không hoạt động. Họ có thể đang nhai CPU và bộ nhớ. Trò chơi có vẻ đặc biệt xấu về mặt này.
Bennett McElwee

2
Câu hỏi đề cập đến người vợ, nhưng thực sự có một trường hợp thậm chí còn tốt hơn - khi bạn có một đứa con vượt quá giới hạn thời gian trong ngày và chỉ chơi game và làm những việc khác không cần tiết kiệm. Bây giờ bạn không chỉ phải đăng nhập khi còn bé mà thêm thời gian chỉ để đăng xuất chúng.
Michael

@Michael Đó chính xác là trường hợp sử dụng của tôi . :)
Bennett McElwee
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.