优化:检查是否有其他人连接

时间:2015-04-14 08:20:30

标签: python linux

我想知道是否有人登录了计算机。为此,我写了这个小脚本,但我想知道是否有更好的方法。

import os

def get_sessions():
    process = os.popen('who | grep -v "\(unknown\)"')
    result  = process.read()
    process.close()

    fields = ["login", "tty", "date", "time", "hostname"]
    return map(lambda x: dict(zip(fields, x.split())), result.splitlines())


def is_someone_else_logged():
    username = os.getlogin()
    return filter(lambda x: x["login"] != username, get_sessions()) != []

另外,你能不能注意到我在这里做的所有非pythonics事情?

2 个答案:

答案 0 :(得分:1)

要使登录的用户使用subprocess.check_outputusers命令来获取登录用户:

from subprocess import check_output
from os import getlogin

c = check_output("users")
users = set(c.split())

print(all(user in {getlogin(),'(unknown)' } for user in users))

答案 1 :(得分:0)

您可以使用psutil的get_users(),检查https://github.com/giampaolo/psutil