Đầu ra của một ứng dụng bắt đầu từ trình quản lý cửa sổ đi đến cùng một nơi với đầu ra từ chính trình quản lý cửa sổ. (Trừ khi ứng dụng chuyển hướng nó, nhưng các ứng dụng GUI thông thường thì không.)
Bạn có thể tìm ra nơi đầu ra của WM đi bằng cách xem những gì nó đã mở trên bộ mô tả tệp 1 (đầu ra tiêu chuẩn) và bộ mô tả tệp 2 (lỗi tiêu chuẩn); thông thường cả hai sẽ đi đến cùng một tập tin. Tìm ra ID tiến trình của trình quản lý cửa sổ của bạn (ví dụ: pgrep metacity
hoặc pidof metacity
Metacity là trình quản lý cửa sổ của bạn - nếu bạn không biết tên quy trình cho trình quản lý cửa sổ của mình, hãy xem gốc của một trong các cây quy trình được báo cáo bởi ps f
hoặc pstree
). Giả sử ID tiến trình của trình quản lý cửa sổ của bạn là 1234, hãy chạy
lsof -p1234
và tìm các dòng tương ứng với mô tả tệp 1 và 2, hoặc
hoặc là
ls -l /proc/1234/fd
Bạn có thể tự động lọc các bộ mô tả tệp có liên quan:
lsof -p1234 | awk '$4 ~ /^[12][^0-9]/'
ls -l /proc/1234/fd/[12]
(Lưu ý: tất cả các lệnh trên là dành cho Linux. pgrep
Phổ biến trong số các thông báo khác và lsof
có thể được cài đặt khá nhiều ở mọi nơi; ps
các tùy chọn và /proc
nội dung khác nhau giữa các thông báo khác nhau.)
Trong tình huống phổ biến khi bạn đang chạy các lệnh từ shell chạy trong trình giả lập thiết bị đầu cuối (xterm, konsole, gnome-terminal, v.v., nhưng không phải khi được sử dụng trên màn hình hoặc tmux), thì bạn có thể dễ dàng kiểm tra nơi đầu ra của trình mô phỏng đầu cuối đang diễn ra, vì trình giả lập thiết bị đầu cuối là quá trình cha của shell của bạn. Điều này không hoạt động nếu trình giả lập thiết bị đầu cuối đang chạy với các đặc quyền bổ sung, điều này xảy ra trên một số hệ thống để cho phép trình giả lập thiết bị đầu cuối ghi vào danh sách người dùng đã đăng nhập (utmp).
lsof -p$PPID
ls -l /proc/$PPID/fd
Nhiều bản phân phối chỉ đạo đầu ra của phiên X tới ~/.xsession-errors
.
ps faux
để kiểm tra tty / pts nào được liên kết với quy trình. nếu không có hoặc "?" nó có thể bị lạc trong khoảng trống (đây chỉ là một ý tưởng, tôi có thể sai)