我正在运行python脚本作为守护程序,并希望使用xprop
查询窗口信息。如果我以登录的同一用户运行xprop
并在本地启动X,这似乎是可能的。我已经尝试将守护进程作为我的用户运行,但是如果我可以运行用户当前登录的xprop
,它会更强大并且适用于其他用户。
如何获取当前登录用户的姓名?
编辑:我不能只阅读$USER
或getpass.getuser()
因为脚本可能以root用户身份运行。我需要运行X
的人的用户名。
我不确定这是否意味着是否正在寻找拥有以下显示:0
的用户(是否总是:0
?)。什么是最好的方式?
> who
myusername :0 2015-03-13 19:52
myusername pts/0 2015-03-13 19:53
也许有些事情如下:
ps -o user -p `pgrep -n '^(startkde|gnome-session)'` | tail -1
虽然这显然取决于窗口管理器。
答案here建议os.getlogin()
似乎很有希望,但不起作用,因为它“返回登录在流程控制终端上的用户的名称”,因此失败了{{1}来自我的守护进程。