linux 获取当前活跃(active)用户信息

        背景:linux系统支持多用户同时在线(online),可随时切换用户。那么,如何获取当前活跃(active)用户(user)的信息。比如,用户1(xiaoming)和用户2(xiaohong)同时登录账号。现从用户xiaoming切换到用户xiaohong,进行用户操作。后台常驻进程要识别用户xiaohong正在操作。

         实现:linux系统一切皆文件。系统目录/run/systemd/users/内会存放当前已登录用户的信息文件。用户信息文件以用户uid(数字)为文件名。文件内容示例如下:

secadm@secadm:/run/systemd/users$ pwd
/run/systemd/users
secadm@secadm:/run/systemd/users$ ls
1000  1001
secadm@secadm:/run/systemd/users$ cat 1000
# This is private data. Do not parse.
NAME=secadm
STATE=active
STOPPING=no
RUNTIME=/run/user/1000
DISPLAY=2
REALTIME=1627434880901260
MONOTONIC=20029181
SESSIONS=2
SEATS=seat0
ACTIVE_SESSIONS=2
ONLINE_SESSIONS=2
ACTIVE_SEATS=seat0
ONLINE_SEATS=seat0

        结果:当STATE=active时,用户为活跃状态,即切换后的用户;当STATE=online时,用户已登录,但非活跃状态。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值