Quá trình nào đang chiếm một thiết bị đầu cuối giả pts / X?


7

Trên Linux: Thông thường các thiết bị đầu cuối giả được phân bổ lần lượt.

Hôm nay tôi nhận ra rằng ngay cả sau khi khởi động lại máy tính xách tay của tôi, cửa sổ đầu cuối được mở đầu tiên (luôn luôn pts/0sớm hơn) đột nhiên trở thành pts/5.

Điều này thật kỳ lạ và khiến tôi tò mò. Tôi muốn tìm hiểu quá trình nào đang chiếm giữ thiết bị /dev/pts/0và không gặp may mắn khi sử dụng các công cụ phổ biến như wholsofthậm chí psnhư được đề xuất trong nhận xét:

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

Tôi đang thiếu gì ở đây? Có thể bị nhiễm bởi một tân binh?


1
Đầu ra của ps auxww|grep pts/0cái gì? (Vui lòng chỉnh sửa nó thành câu hỏi của bạn!)
MadHatter

Phiên của tôi cũng là một pts khác pts/0. Trong trường hợp của tôi, các mục pts khác là từ các quy trình chết; xem đầu ra của who -a.
Jonas Malaco

1
@jonasmalacofilho: Cảm ơn rất nhiều vì đã xem xét vấn đề này. Trong trường hợp của tôi (chạy Kubfox 14.04.3 LTS dựa trên Debian jessie / sid), nó vẫn là bí ẩn đối với tôi, quá trình này chiếm pts / 0. Nó không được liệt kê trong đầu ra của lệnh who -a.
pefu

Câu trả lời:


4

Nếu bạn đã cài đặt bộ nhiệt áp và có quyền sử dụng sudo:

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

ví dụ:

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

1

Cuối cùng tôi đã tìm thấy một cách mặc dù rất xấu để tìm ra quá trình nào chiếm thiết bị đầu cuối giả pts/0.

Như Superuser tôi đã làm cd /procvà nhập lệnh bash sau:

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

Bằng cách này, tôi đã tìm ra rằng trong trường hợp của tôi pts/0, quá trình này đã bị chiếm đóng /usr/sbin/bumblebeed.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.