gpt4 book ai didi

c - 如何获取与终端关联的 session 的 session ID?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:36 25 4
gpt4 key购买 nike

在Linux中,每个终端只关联一个 session (一个 session 有一个或多个进程组,一个进程组有一个或多个进程)。

是否有一些函数(或命令)接受 tty 设备文件(例如:/dev/tty1/dev/pts/0)并返回与此 tty/终端关联的 session ID?

最佳答案

执行以下步骤:

  1. stat 您要检查的 TTY。特别是找出它正在使用的主要/次要设备 ID。使用公式 major*256+minor 将它们组合成一个数字(或者只从 stat 中获取原始数字)

  2. 打开/proc/,扫描所有名字只有数字的目录。该目录的名称是系统中进程的pid

  3. 对于每个这样的目录,打开/proc/pid/stat,并将文件解析为由空格分隔的字段(第二个字段除外,它有括号)。第 7 个字段将是 TTY 设备的主要/次要。扫描直到找到与您正在寻找的 TTY 匹配的电话。

  4. 该文件中的第 6 个字段是进程的 sid(您要查找的编号)。第 8 个字段是 TTY 的 pgrp

文件结构详解here .

关于c - 如何获取与终端关联的 session 的 session ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47227764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com