我正在寻找一种简单的方法来确定当前登录用户的数量,仅使用文件系统和基本 bash 函数(而不是使用二进制文件)。
该二进制文件似乎是根据其源代码uptime
读取的,但似乎并未实时更新(它为我的用户显示,但我目前只是在运行)。但是,二进制文件正确显示“2 个用户”。/var/run/utmp
/var/run/utmp
tty7
pts/1-5
tty7
pts/5
uptime
注意:我不是依赖Cuptime
语言getutent()
,而是试图更好地理解底层系统是如何工作的。
查找当前登录系统的准确用户数量的最佳位置是哪里?
答案1
您可以通过查看来查看分配了多少 pty /proc/sys/kernel/pty/nr
,但这不一定是多少人们已登录。
例如,在我的一台服务器上,我目前是唯一登录的人,但有7pty 正在使用,因为用户正在运行screen
.