Welcher Prozess belegt ein bestimmtes Pseudo-Terminal pts / X?

7

Unter Linux: Normalerweise werden Pseudo-Terminals nacheinander zugewiesen.

Heute wurde mir klar, dass auch nach einem Neustart meines Laptops pts/0plötzlich das erste geöffnete Terminalfenster (das immer früher war) wurde pts/5.

Das war komisch und hat mich neugierig gemacht. Ich wollte herausfinden, welcher Prozess das Gerät belegt, /dev/pts/0und hatte kein Glück mit gängigen Tools wie whound lsofoder sogar pswie im Kommentar vorgeschlagen:

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

Was fehlt mir hier? Möglicherweise von einem Turm infiziert?

Pefu
quelle
1
Was ist die Ausgabe von ps auxww|grep pts/0? (Bearbeiten Sie es in Ihre Frage, bitte!)
MadHatter
Meine Sitzung ist auch auf einem anderen Punkt als pts/0. In meinem Fall stammen die anderen pts-Einträge aus toten Prozessen. siehe die Ausgabe von who -a.
Jonas Malaco
1
@ Jonasmalacofilho: Vielen Dank, dass Sie sich das angesehen haben. In meinem Fall (mit Kubuntu 14.04.3 LTS basierend auf Debian jessie / sid) bleibt es mir rätselhaft, welcher Prozess pts / 0 belegt. Es ist nicht in der Ausgabe des Befehls aufgeführt who -a.
Pefu

Antworten:

4

Wenn Sie die Fixiereinheit installiert haben und die Berechtigung zur Verwendung von sudo haben:

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

z.B:

24622 /usr/bin/python /usr/bin/terminator
24633 ksh93 -o vi
jlliagre
quelle
1

Ich habe endlich einen, wenn auch sehr hässlichen Weg gefunden, um herauszufinden, welcher Prozess das Pseudo-Terminal belegt pts/0.

Als Superuser habe ich cd /procden folgenden Bash-Befehl eingegeben:

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

Auf diese Weise stellte ich fest, dass in meinem Fall der pts/0von dem Prozess besetzt war /usr/sbin/bumblebeed.

Pefu
quelle