注销其他用户而无需先切换到该用户


28

我的妻子使用单独的帐户,并在运行10.6的MBP上快速切换用户。有时我想注销她以释放一些RAM,但我想避免以她的身份登录,注销然后再以我的身份登录。

我已经看到了终端解决方案...还有更好的方法吗?谢谢!


5
您需要更好地定义“是否有更好的方法”。对我来说,没有什么比计算机终端更好的了。如果您想要一个应用程序,只需将终端命令包装在一个自动程序或applescript应用程序中。

2
@mankoff,好点!但这不是Arch Linux论坛,所以假设我想要一个GUI /内置解决方案:)。但是,您是对的,我只能编写一个Shell脚本。
理查德·赫伦

2
这是脚本解决方案的链接(我在发布之前就看到了它,但是它来自2005年,所以我认为到目前为止,这个简单的功能必须已经集成到GUI中)。 forums.macrumors.com/showthread.php?t=118545
理查德·赫伦

我不知道内置的GUI解决方案...
Robert S Ciaccio

好,谢谢,全部!当我写一个好的脚本时,我会把它发回到这里。
理查德·赫伦

Answers:


22

使用终端,您可以杀死她的loginwindow进程,并且打开的任何程序都将被关闭...但是,这将导致她丢失所有尚未保存的工作!实际上,这就是您需要以她的身份登录才能退出的原因:当您以她的身份登录时,她的所有程序都可以再次访问GUI,因此它们可以提示您确认关闭,保存更改或执行其他操作。注销之前采取的措施。

如果您确定她只有打开的网络浏览器,iTunes等功能,而没有Pages,Word,Photoshop或其他任何带有文档的功能,则可以从终端尝试:

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

在OSX 10.10.4上:(从最后一条评论稍作编辑):

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

1
同意警告,如果您不登录查看她在做什么,那么您就不知道注销她可能会花费多少。
Michael H.

是啊,你说得对。大多数情况下,它是通过网络浏览的……但是有一次它不会!谢谢!
理查德·赫伦

4
如果您强行终止她loginwindowActivity Monitor.app您可以同时方便地浏览她未完成的其他流程。
哈里·凯纳嫩(JariKeinänen)2011年

1
如果最终还是运行Awk,则grep可以轻松避免使用多个命令。 ps awwwwux | awk '/her_short_username/ && /loginwind[o]w/ { print $2 } | xargs kill并参阅iki.fi/era/unix/award.html#grep
Tripleee

1
只需在更新的命令中修正拼写错误,读取结果sudu应为sudo
hoss 2015年

18

您可以使用活动监视器通过终止另一个用户的登录过程来注销另一个用户:

  1. 运行活动监视器
  2. 在右上角的过滤器中,键入 loginwindow
  3. 在“ 用户”列中单击带有用户名的行
  4. 单击“ 退出过程”,然后单击“ 强制退出”,然后输入密码。

这只是Josh的Answer的一个更好的(?)GUI版本。

在执行步骤2之前,您可以查看其他用户的运行进程,以查看他们是否正在运行任何可能在注销时丢失数据的应用程序。


我尝试了此操作,但仍然在活动监视器中看到其他用户的进程正在运行。没错,该帐户似乎已在用户切换菜单中注销,但似乎与注销并不完全相同。
Gorb

8

该命令比建议的命令简单,它将具有杀死所有用户进程的期望结果(我不得不运行两次)

sudo pkill -9 -u user

如果您只想终止该用户的loginwindow进程,则可以执行以下操作:

sudo pkill -9 -u user loginwindow


1
在我看来,这是一个比其他方法明显更好,更惯用的答案(从unix sysadmin的角度来看)。
Gregg Leventhal '18

2

我认为最简单的方法是:sudo killall -9 -uifes_name


使用MacOS Mojave,这是尝试了许多方法之后的唯一解决方案,这些方法不仅杀死了LoginWindow进程,而且杀死了该用户拥有的许多其他进程。仅杀死该用户的LoginWindow进程并不会杀死该用户启动的许多其他进程。该解决方案(用我妻子的名字代替)摆脱了她登录后开始的每个过程。类似于重新启动计算机,然后自己登录。
i-CONICA

-1

我认为,可能的数据丢失远远超过了可能的RAM增益。

而且,自从Unix能够在进程空闲时将内存交换到磁盘以来,已经有很长时间了。


2
一个问题是,当用户退出时,他们的进程可能不会处于空闲状态。他们可能正在消耗CPU和内存。在这方面,游戏似乎特别糟糕。
Bennett McElwee 2015年

2
问题提到了妻子,但实际上还有一个更好的情况-当您的孩子超过了当天的时间限制,只玩游戏和做其他不需要储蓄的事情时。现在,您不仅需要以孩子的身份登录,还需要增加时间才能注销他们。
迈克尔

@Michael那正是我的用例。:)
Bennett McElwee
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.