startxchạy xinitmà bắt đầu một máy chủ X và một phiên khách. Phiên khách là ~/.xinitrcnếu có, và nếu không /etc/X11/xinit/xinitrc(vị trí có thể khác nhau giữa các bản phân phối). Kịch bản này không thay đổi giữa các bản phân phối. Trên Debian (bao gồm các dẫn xuất như Raspbian), /etc/X11/xinit/xinitrcchạy /etc/X11/Xsessionlần lượt chạy các tập lệnh trong /etc/X11/Xsession.d. Các kịch bản Debian tìm kiếm một phiên người dùng trong các tập tin khác ( ~/.xsession, ~/.xsessionrc, ~/.Xsession), và nếu không có thiết lập sử dụng được áp dụng, chạy x-session-manager(té ngửa ra x-window-managernếu không có [Session Manager] được cài đặt, té ngửa ra x-terminal-emulatortrong trường hợp không chắc rằng không có quản lý cửa sổ là Cài đặt).
Nếu bạn muốn kiểm soát những gì được thực thi, bạn có thể tạo một trong các tệp người dùng, ~/.xsessionhoặc ~/.xinitrc. Tệp ~/.xsessioncũng được sử dụng nếu bạn đăng nhập vào trình quản lý hiển thị (nghĩa là nếu bạn nhập mật khẩu của mình trong cửa sổ GUI). Các tập tin ~/.xinitrclà cụ thể xinitvà startx. Việc sử dụng ~/.xsessionđi qua /etc/X11/Xsessionđể nó thiết lập những thứ như phương thức nhập liệu, tài nguyên, tác nhân mật khẩu, v.v. Nếu bạn sử dụng .xinitrc, bạn sẽ phải thực hiện tất cả những việc này một cách thủ công. Một lần nữa, tôi đang mô tả Debian ở đây, các biến thể Unix khác có thể thiết lập mọi thứ khác đi. Việc sử dụng ~/.xinitrcđể chỉ định những gì được thực thi khi bạn chạy startxhoặc xinitlà phổ quát.
Cho dù bạn sử dụng ~/.xinitrchay ~/.xsession, tập tin này (thường là tập lệnh shell, nhưng nó không phải là nếu bạn thực sự muốn sử dụng một cái gì đó khác) phải chuẩn bị mọi thứ cần chuẩn bị (ví dụ: cài đặt bàn phím, tài nguyên, applet chưa bắt đầu bởi trình quản lý cửa sổ, v.v.), và cuối cùng, chạy chương trình quản lý phiên. Khi kịch bản kết thúc, phiên kết thúc. Thông thường, bạn sẽ sử dụng execở cuối tập lệnh, để thay thế tập lệnh bởi trình quản lý phiên hoặc trình quản lý cửa sổ.
Hệ thống của bạn có lẽ có /usr/bin/startlxdetrình quản lý phiên mặc định trên toàn hệ thống. Trên Debian và các dẫn xuất, bạn có thể kiểm tra các trình quản lý phiên có sẵn với
update-alternatives --list x-session-manager
hoặc có được một mô tả dài dòng hơn cho biết cái nào hiện tại với
update-alternatives --display x-session-manager
Nếu LXDE không phải là mặc định toàn hệ thống và bạn muốn đặt nó làm mặc định cho tài khoản của mình, bạn có thể sử dụng ~/.xsessiontệp sau :
#!/bin/sh
exec startlxde
Trên một số biến thể Unix, điều đó sẽ chỉ chạy cho đăng nhập đồ họa, không phải cho startx, vì vậy bạn cũng cần tạo một bản sao giống hệt ~/.xinitrc. (Hoặc không giống nhau: trong ~/.xsession, bạn có thể muốn làm những việc khác, vì đó là tệp đầu tiên được thực thi trong phiên đồ họa; ví dụ: bạn có thể đặt . ~/.profilegần đầu, để đặt một số biến môi trường.)
Nếu bạn muốn thử các môi trường khác một lần, bạn có thể chỉ định một chương trình khác để chạy trên dòng lệnh của startxchính nó. Các startxchương trình có một điều không minh bạch: bạn cần phải sử dụng toàn bộ đường dẫn đến chương trình.
startx /usr/bin/startkde
Các startxlệnh cũng cho phép bạn chỉ định đối số để truyền đến máy chủ. Ví dụ: nếu bạn muốn chạy nhiều phiên GUI cùng một lúc, bạn có thể chuyển một số hiển thị khác nhau mỗi lần. Vượt qua các đối số máy chủ sau khi --trên dòng lệnh của startx.
startx /usr/bin/startkde -- :1
               
              
startxbắt đầu phiên Xfce4 mặc định. Từ người dùng của vợ tôi đăng nhập vào tty1 hoặc tty2.startxLệnh của cô được đặt để chạy Cinnamon (được chỉ định trong~/.xsession). Đối với máy chủ X thứ hai, tôi không phải chỉ định$DISPLAYnhư đã lưu ý trong phần cuối của câu trả lời của bạn. Mặc dù điều đó chắc chắn làm việc. Nó tự động làm cho nó thứ hai,$DISPLAYvv Thiết lập là tuyệt vời mặc dù. Không có đăng nhập và ra khỏi một phiên đồ họa, chỉ có một phím tắt để chuyển đổi hồ sơ người dùng. Cảm ơn câu trả lời hữu ích này!