Linux

哪個程序佔用了某個偽終端pts/X?

  • January 29, 2016

在 Linux 上:通常偽終端一個接一個地分配。

今天我意識到,即使在我的筆記型電腦重新啟動後,第一個打開的終端視窗(總是pts/0更早)突然變成了pts/5.

這很奇怪,讓我很好奇。我想找出哪個程序正在佔用設備,並且使用常見工具(例如,甚至評論中建議的/dev/pts/0)沒有運氣:who``lsof``ps

pf@pfmaster-P170EM:pts/6 /var/log 1115> ps auxww | grep pts/0 
pf        7042  0.0  0.0  17208   964 pts/6    S+   12:32   0:00 grep --color=auto pts/0

我在這裡缺少什麼?可能是被菜鳥感染了?

如果您安裝了fuser並有權使用 sudo:

for i in $(sudo fuser /dev/pts/0); do
   ps -o pid= -o command= -p $i
done

例如:

24622 /usr/bin/python /usr/bin/terminator
24633 ksh93 -o vi

我終於找到了一種雖然非常醜陋的方法來確定哪個程序佔用了偽終端pts/0

作為超級使用者,我cd /proc輸入了以下 bash 命令:

for pid in [0-9]* ; do  \
   RES=`ls -l $pid/fd/* 2>/dev/null| grep pts/0`; \
   if [ -n "$RES" ]; then echo "Process $pid owns: $RES"; fi; \
done

通過這種方式,我發現在我的情況下pts/0,程序被佔用了/usr/sbin/bumblebeed

引用自:https://unix.stackexchange.com/questions/114468