Linux
哪個程序佔用了某個偽終端pts/X?
在 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
。