it-mot-dan-vi.com

Có một lệnh linux đơn giản sẽ cho tôi biết trình quản lý hiển thị của tôi là gì không?

Có một lệnh linux đơn giản sẽ cho tôi biết trình quản lý hiển thị của tôi là gì không?

Tôi đang sử dụng Xfce. Các môi trường máy tính để bàn khác nhau thường được liên kết với các trình quản lý hiển thị khác nhau?

65
ptrcao

Thật không may, cấu hình khác nhau cho mỗi phân phối:

Debian/Ubuntu

/etc/X11/default-display-manager

RedHat (cũng nên áp dụng cho Fedora)

/etc/sysconfig/desktop

OpenSuSe

/etc/sysconfig/displaymanager
52
Šimon Tóth

Nếu bạn đang sử dụng systemd phân phối dựa trên. Lệnh này sẽ cho biết tên của trình quản lý hiển thị hiện được cấu hình vì bạn có thể đã cài đặt nhiều trình quản lý hiển thị.

grep '/usr/s\?bin' /etc/systemd/system/display-manager.service

OUTPUT sẽ giống như

ExecStart=/usr/bin/mdm

Có vẻ như tôi đang sử dụng trình quản lý hiển thị bạc hà.

27
allsyed

Không có. Trình quản lý hiển thị không nhất thiết liên quan đến bất kỳ thứ gì khác đang chạy trên cùng một máy chủ X. Trình quản lý hiển thị chạy trước khi bạn đăng nhập; nó được chọn bởi quản trị viên hệ thống. Mọi thứ khác (trình quản lý cửa sổ, trình quản lý phiên, môi trường máy tính để bàn, tập) được người dùng chọn. Thậm chí không cần phải có trình quản lý hiển thị: nếu bạn đăng nhập ở chế độ văn bản và khởi động GUI bằng startx , không có trình quản lý hiển thị nào được tham gia.

Bạn có thể kiểm tra trình quản lý hiển thị nào là mặc định trên hệ thống của bạn . Điều này sẽ chỉ đưa ra câu trả lời đúng theo một số giả định phổ biến nhưng không phổ biến. Nếu bạn tự chạy một trình quản lý khác vì bất kỳ lý do gì, phương pháp này sẽ không cho bạn biết.

Đặt cược tốt là tìm ra ID tiến trình của máy chủ X: quy trình mẹ của nó có thể là trình quản lý hiển thị, nếu có. Điều này đòi hỏi khách hàng của bạn đang chạy trên cùng một máy với máy chủ X. lsof /tmp/.X11-unix/X${DISPLAY#:} sẽ hiển thị quy trình máy chủ X (giả sử các ổ cắm X sống trong /tmp/.X11-unix).

x=$(lsof -F '' /tmp/.X11-unix/X0); x=${x#p}
ps -p $(ps -o ppid -p $x)

(Giải trình: lsof -F '' in đầu ra như p1234. Các -F tùy chọn có nghĩa là định dạng đầu ra có thể phân tích cú pháp máy và '' có nghĩa là chỉ in PID, với chữ cái p trước nó. x=${x#p} loại bỏ chữ cái đầu tiên p. Dòng cuối cùng nhận được PID của cha mẹ của máy chủ X (ps -o ppid -p $x) và gọi ps để hiển thị thông tin về quy trình cha mẹ đó.)

Một số bản phân phối cho phép cài đặt nhiều trình quản lý hiển thị. Sẽ chỉ có một hoạt động duy nhất trừ khi bạn có một hệ thống nhiều màn hình. Để liệt kê tất cả các gói trình quản lý hiển thị được cài đặt trong Debian và các dẫn xuất:

aptitude -F %p search '~i ~P^x-display-manager$'

hoặc là

</var/lib/dpkg/status awk '
    /^Package: / {package = $2}
    /^Provides: .*x-display-manager/ {print package}'

Nếu bạn đang sử dụng systemd, thì

systemctl status display-manager

Sẽ hiển thị tên và trạng thái của dịch vụ quản lý hiển thị đang hoạt động trên máy của bạn.

23
Mio Rin

Tên trình quản lý hiển thị phải ở dạng DESKTOP_SESSION

echo $DESKTOP_SESSION

trả lại "gnome" cho tôi.

[~ # ~] chỉnh sửa [~ # ~]
Bạn đúng. Họ đang quay trở lại trên XFCEs bugzilla nên có lẽ nó không đáng tin cậy lắm.

10
charlesbridge

Giống như @Gilles đã nói, trình quản lý hiển thị sẽ bắt đầu môi trường máy tính để bàn của bạn.

Theo Debian Wiki , phần lớn các kết thúc này có dm, chỉ có ngoại lệ là slim.

Vì vậy, điều này đủ cho hầu hết các nhu cầu của mọi người:

ps auxf | awk '{print $11}' | \grep --color -e dm$ -e slim$

Hoặc để chắc chắn, nó tồn tại dưới dạng một tiến trình cha và không bị rẽ nhánh (ngoại trừ từ hệ thống init):

ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$" 
3
sjas

Bạn có thể thực hiện việc này thông qua tập lệnh của bên thứ ba có tên screenfetch

Screenfetch là tập lệnh bash có sẵn cho Linux, hiển thị thông tin hệ thống cùng với phiên bản ASCII của Logo phân phối Linux của hệ thống

Cài đặt qua trình quản lý gói Sudo apt-get install screenfetch (giả sử bạn đang sử dụng các biến thể Debian)

và chỉ chạy screenfetch Trong thiết bị đầu cuối của bạn

Liên kết dự án https://github.com/KittyKatt/screenFetch

0
Obi Uchenna David

Trong một số trường hợp, wmctrl có thể giúp đỡ. Tiện ích này tương thích với rất nhiều trình quản lý windows.

wmcrt -m 

sẽ hiển thị tên của trình quản lý cửa sổ hiện đang sử dụng.

0
Francis Gernet

Như đã đề cập, có rất nhiều nhầm lẫn trong chủ đề này. Câu hỏi ban đầu là trình quản lý hiển thị, không phải trình quản lý màn hình hoặc trình quản lý cửa sổ. Tôi hiện đang chạy Xfwm4, trình quản lý cửa sổ Xfce và lxdm, trình quản lý hiển thị X11 nhẹ (từ LXDE, không phải Xfce). Bạn sẽ có thể xem trình quản lý hiển thị nào bạn đang sử dụng thông qua htop. Có lẽ bạn đã phát hiện ra câu trả lời trong 4 năm qua :)

0
billV