0

我正在尝试找到一种方法来构建一个 cron 作业,该作业将根据他们上次主动移动鼠标的时间在 OSX 中注销空闲用户。OSX 的内置功能仅在整台机器空闲时才会注销所有人。我能够找出谁空闲的唯一方法是使用“w”,然后它会给我几列,其中一个有空闲时间。我怎样才能只管该字段中的那些数字而忽略其余部分?有更简单的方法吗?

我将如何写这个:

1.发出命令w

2.检查用户名以查看空闲时间是否大于 30 分钟,如果是,请发出命令 ps -Ajc | grep loginwindow 并为超过空闲时间的用户找到 loginwindow 的用户名和 pid 并发出 sudo kill -9 "whatever pid is for that user's login window"

并从此脚本中排除“whateverusernamehere”(这样它将保持登录状态)。

4

1 回答 1

0

我知道你问过管道。但执行此操作的标准方法是:考虑使用 TMOUT 变量。

在登录配置文件中添加如下内容:

declare -r TMOUT=14400

这会在 14400 秒(4 小时不活动)后注销不活动的交互式用户。

您的解决方案,尤其是 kill -9,有点苛刻,可能会导致问题。某些用户可以打开文件,您的方法将无法检测到该文件,并且您将用户杀死,您可能会损坏文件。

于 2013-05-08T18:15:07.280 回答