http://unix.stackexchange.com/questions/136662/how-can-we-know-whos-at-the-other-end-of-a-pseudo-terminal-device

stty -F /dev/pts/2

ls /proc/29864/fd/* -l
strace -p 29864 |less
ls /proc/locks
ls /proc/locks -l
ls /proc/tty/drivers
cat /proc/tty/drivers
sudo fuser -v /dev/ptmx
do chkio /proc/29864/io /dev/pts/39
chkio /proc/29864/io /dev/pts/39
who
ps -t pts/39 --forest
man stty
stty -F /dev/pts/39
sudo fuser -v /dev/ptmx
ls /sys/class/tty/ptmx/subsystem/
ls /sys/class/tty/ptmx/subsystem/ -l
ls /sys/class/tty/ptmx/subsystem/ -l |grep pts
ls /sys/class/tty/ptmx/subsystem/
ls /sys/class/tty/ptmx/subsystem/
ls /sys/class/tty/ptmx/
ls /sys/class/tty/ptmx/dev
cat /sys/class/tty/ptmx/dev
sudo fuser -v /dev/ptmx
find / -name "pts/39"

How can we know who's at the other end of a pseudo-terminal device?

If I do a:

echo foo > /dev/pts/12

Some process will read that foo\n from its file descriptor to the master side.

Is there a way to find out what that(those) process(es) is(are)?

Or in other words, how could I find out which xterm/sshd/script/screen/tmux/expect/socat... is at the other end of /dev/pts/12?

lsof /dev/ptmx will tell me the processes that have file descriptors on the master side of any pty. A process itself can use ptsname() (TIOCGPTN ioctl) to find out the slave device based on its own fd to the master side, so I could use:

gdb --batch --pid "$the_pid" -ex "print ptsname($the_fd)"

for each of the pid/fd returned by lsof to build up that mapping, but is there a more direct, reliable and less intrusive way to get that information?

How can I figure out which pty's are from which qemu?

$ for i in `virsh list | awk '{print $2}' | egrep -v "^$|Name"`; do
printf "%-14s:%s\n" $i $(virsh ttyconsole $i | grep -v "^$");
done cobbler :/dev/pts/1
xwiki :/dev/pts/3
fan :/dev/pts/4
mercury :/dev/pts/5
mungr :/dev/pts/0
win2008R2-01 :/dev/pts/7
Incidentally those same VMs through an lsof command:
$ lsof|grep qemu|grep ptmx
qemu-kvm 3796 root 14u CHR 5,2 0t0 993 /dev/ptmx
qemu-kvm 3895 root 14u CHR 5,2 0t0 993 /dev/ptmx
qemu-kvm 3972 root 14u CHR 5,2 0t0 993 /dev/ptmx
qemu-kvm 4294 root 15u CHR 5,2 0t0 993 /dev/ptmx
qemu-kvm 11897 root 14u CHR 5,2 0t0 993 /dev/ptmx

tty/pts 相关指令的更多相关文章

  1. Linux指令--性能监控和优化命令相关指令

    原文出处:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html.感谢作者无私分享 性能监控和优化命令相关指令有:top,free,v ...

  2. AnjularJS系列2 —— 表单控件功能相关指令

    第二篇,表单控件功能相关指令. ng-checked控制radio和checkbox的选中状态 ng-selected控制下拉框的选中状态 ng-disabled控制失效状态 ng-multiple控 ...

  3. Linux相关指令

    Linux相关指令 1.find文件搜索功能 find [目录列表] [匹配参数] [匹配标准] -name :按文件名称进行搜索 -group :按文件所属组进行搜索 -user :按文件拥有者进行 ...

  4. 常见压缩格式分析,及 Linux 下的压缩相关指令

    可先浏览加粗部分 一.常见压缩档 *.zip | zip 程式壓縮打包的檔案: (很常见,但是因为不包含文件名编码信息,跨平台可能会乱码) *.rar | winrar 程序压缩打包的档案:(在win ...

  5. adb相关指令 笔记

      adb相关指令 笔记 1.adb devices 查看物理测试设备或模拟器的相关信息,有三个状态: (1)device 设备已连接到adb服务器上,但该状态并不代表设备已启动完毕可以进行操作: ( ...

  6. 汇编 OD 标志位 置位相关指令

    知识点: l 标志位 置位相关指令   l 标志寄存器PSW 标志寄存器PSW(程序状态字寄存器PSW)    标志寄存器PSW是一个16为的寄存器.它反映了CPU运算的状态特征并且存放某些控制标志. ...

  7. AllowOverride以及Options相关指令

    AllowOverride以及Options相关指令      httpd.conf是Apache的主要配置文件,但是针对每个目录,apache还允许在它们各自的目录下放置一个叫做.htacess的文 ...

  8. ADB相关指令实例详解

    1.获取物理设备相关信息: adb devices 2.apk安装 2.1 新的应用(该应用未安装) adb -s 设备序列号 install apk路径 2.2 应用已安装,重安装覆盖 adb -s ...

  9. 【AnjularJS系列2 】— 表单控件功能相关指令

    第二篇,表单控件功能相关指令. ng-checked控制radio和checkbox的选中状态 ng-selected控制下拉框的选中状态 ng-disabled控制失效状态 ng-multiple控 ...

随机推荐

  1. Android ListView中带有时间数据的排序

    下面是activity: public class MainActivity extends Activity { private ListView mListView = null; private ...

  2. 基于spark的plsa实现

    PLSA.py # coding:utf8 from pyspark import SparkContext from pyspark import RDD import numpy as np fr ...

  3. C++ 线程的创建,挂起,唤醒,终止

    例子: 线程代码: DWORD __stdcall ThreadProc(LPVOID lpParameter) { CMultiThreadDlg * pdlg = (CMultiThreadDlg ...

  4. 【HTML+CSS】浅谈:相对定位与绝对定位

    相对定位和绝对定位 ·定位标签:position  ·包括属性:relative(相对) absolute(绝对) 1.position:relative; 假设对一个元素进行相对定位.首先它将出如今 ...

  5. Python 练习 —— 2048

    1. 引言 2048 这段时间火的不行啊,大家都纷纷仿造,"百家争鸣",于是出现了各种技术版本号:除了手机版本号,还有C语言版.Qt版.Web版.java版.C#版等,刚好我接触P ...

  6. C# 移动端与PC端的数据交互

    小记:针对目前功能越来越强大的智能手机来说,在PC端支持对手机中的用户数据作同步.备份以及恢复等保护措施的应用已经急需完善.不仅要对数据作保护,而且用户更希望自己的手机跟PC能够一体化,以及和远程服务 ...

  7. 【计算几何初步-判断是否凸多边形】【HDU2108】Shape of HDU

    Shape of HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  8. django配置

    安装python环境后,安装pip工具 通过pip下载安装django pip install django   django在web中的应用主要由两部分构成,工程与App 工程即相当于一下门户框架 ...

  9. 将json的时间格式转换成正常的时间格式

    /** * 对Date的扩展,将 Date 转化为指定格式的String * 月(M).日(d).12小时(h).24小时(H).分(m).秒(s).周(E).季度(q) 可以用 1-2 个占位符 * ...

  10. 【JSONKit】序列化Dictionary崩溃

    jsonkit通过Dictionary转换成JSON字符串时总是崩溃. 解析代码: 崩溃地点 分析是因为我的参数中全是数字   找了一下原因,不知道知道怎么设置,(求大神指点) 这里有一个折中办法使用 ...