在Linux中,每个终端只关联一个会话(一个会话有一个或多个进程组,一个进程组有一个或多个进程)。
是否有一些函数(或命令)采用 tty 设备文件(例如:/dev/tty1
或/dev/pts/0
)并返回与此 tty/终端关联的会话 ID?
在Linux中,每个终端只关联一个会话(一个会话有一个或多个进程组,一个进程组有一个或多个进程)。
是否有一些函数(或命令)采用 tty 设备文件(例如:/dev/tty1
或/dev/pts/0
)并返回与此 tty/终端关联的会话 ID?
执行以下步骤:
stat
您要检查的 TTY。特别是,找出它正在使用的主要/次要设备 ID。使用公式将它们组合成一个数字major*256+minor
(或仅从 中获取原始数字stat
)
打开/proc/
并扫描所有名称仅为数字的目录。该目录的名称是pid
系统中一个进程的名称。
对于每个这样的目录,打开/proc/pid/stat
文件并将其解析为由空格分隔的字段(第二个字段除外,它周围有括号)。第 7 个字段将是 TTY 设备的主要/次要。扫描,直到找到与您正在寻找的 TTY 匹配的一个。
该文件中的第 6 个字段是sid
进程的(您要查找的数字)。第 8 个字段是 TTY 的pgrp
.
文件结构在这里详述。