Câu trả lời:
~/.xinitrc
được thực thi bởi xinit
, thường được gọi thông qua startx
. Chương trình này được thực thi sau khi đăng nhập: đầu tiên bạn đăng nhập vào bảng điều khiển văn bản, sau đó bạn khởi động GUI bằng startx
. Vai trò của .xinitrc
là bắt đầu phần GUI của phiên, thường bằng cách đặt một số cài đặt liên quan đến GUI như các ràng buộc chính (với xmodmap
hoặc xkbcomp
), tài nguyên X (với xrdb
), v.v. và để khởi chạy trình quản lý phiên hoặc trình quản lý cửa sổ ( có thể là một phần của môi trường máy tính để bàn).
~/.xsession
được thực thi khi bạn đăng nhập ở chế độ đồ họa (trên trình quản lý hiển thị ) và trình quản lý hiển thị sẽ gọi loại phiên phiên bản tùy chỉnh của trực tuyến. (Với xdm quản lý hiển thị lịch sử, .xsession
luôn luôn thực hiện, nhưng với các nhà quản lý trưng bày hiện đại cung cấp cho người dùng một lựa chọn loại session, bạn thường cần phải chọn “tùy chỉnh” cho .xsession
chạy.) Vai trò của nó là cả hai để thiết lập thông số đăng nhập thời gian (chẳng hạn như các biến môi trường) và để bắt đầu phiên GUI. Một điển hình .xsession
là
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
được thực thi trên Debian (và các dẫn xuất như Ubuntu, Linux Mint, v.v.) bởi các tập lệnh khởi động X trên thông tin đăng nhập GUI, cho tất cả các loại phiên và (tôi nghĩ) từ tất cả các trình quản lý hiển thị. Nó cũng được thực thi startx
nếu người dùng không có .xinitrc
, bởi vì trong trường hợp startx
đó, các tập lệnh khởi động cùng phiên được sử dụng để đăng nhập GUI. Nó được thực hiện tương đối sớm, sau khi tải tài nguyên nhưng trước khi bắt đầu bất kỳ chương trình nào như tác nhân chính, trình nền D-Bus, v.v. Nó thường đặt các biến có thể được sử dụng bởi các tập lệnh khởi động sau này. Nó không có bất kỳ tài liệu chính thức nào mà tôi biết, bạn phải đào sâu vào nguồn để xem những gì hoạt động.
.xinitrc
và .xsession
là các tính năng lịch sử của hệ thống Cửa sổ X11, vì vậy chúng nên có sẵn và có hành vi tương tự trên tất cả các hệ thống Unix. Mặt khác, .xsessionrc
là một tính năng và bản phân phối Debian không dựa trên Debian không có nó trừ khi họ đã triển khai một cái gì đó tương tự.
.xprofile
rất giống với .xsessionrc
, nhưng nó là một phần của tập lệnh khởi động phiên của GDM (trình quản lý hiển thị Gnome), vì vậy nó chỉ đọc nếu bạn đăng nhập bằng GDM.
Theo một cuộc thảo luận khác, startx + ~ / .xsession và no ~ / .xinitrc, dẫn đến chức năng bị giảm (xfce4, sid)
Thứ nhất:
.xsessionrc
là để giữ các biến môi trường toàn cầu . Sự nhấn mạnh là của tôi.Thứ hai:
40x11-common_xsessionrc
trong/etc/X11/Xsession.d
là có nguồn gốc trước50x11-common_determine-startup
. Vì vậy,.xsessionrc
được đọc trước.xsession
và bất kỳ biến môi trường nào được đặt sẽ có sẵn cho các ứng dụng được chạy bởi các lệnh trong.xsession
.
Đọc thêm: