startxรันxinitซึ่งเริ่มต้นเซิร์ฟเวอร์ X และเซสชันไคลเอ็นต์ เซสชั่นลูกค้าคือ~/.xinitrcถ้ามีและอื่น ๆ/etc/X11/xinit/xinitrc(สถานที่อาจแตกต่างกันระหว่างการกระจาย) สิ่งที่สคริปต์นี้จะแตกต่างกันระหว่างการแจกแจง ใน Debian (รวมถึงสัญญาซื้อขายล่วงหน้าเช่น Raspbian) /etc/X11/xinit/xinitrcวิ่งซึ่งจะเรียกใช้สคริปต์ใน/etc/X11/Xsession /etc/X11/Xsession.dสคริปต์ Debian มองหาเซสชั่นของผู้ใช้ในไฟล์อื่น ๆ ( ~/.xsession, ~/.xsessionrc, ~/.Xsession) และหากไม่มีการตั้งค่าผู้ใช้บังคับวิ่งx-session-manager(ลดลงกลับไปx-window-managerหากไม่มี [ผู้จัดการเซสชั่น] มีการติดตั้งลดลงกลับไปx-terminal-emulatorในกรณีที่ไม่น่าที่ไม่มีผู้จัดการหน้าต่าง ติดตั้ง)
หากคุณต้องการที่จะควบคุมสิ่งที่ได้รับการดำเนินการที่คุณสามารถสร้างไฟล์ของผู้ใช้อย่างใดอย่างหนึ่งหรือ~/.xsession ~/.xinitrcไฟล์~/.xsessionนี้ยังใช้หากคุณเข้าสู่ระบบจัดการหน้าจอ (เช่นถ้าคุณพิมพ์รหัสผ่านในหน้าต่าง GUI) ไฟล์ที่~/.xinitrcมีเฉพาะและxinit startxการใช้งาน~/.xsessionผ่านการ/etc/X11/Xsessionตั้งค่าต่าง ๆ เช่นวิธีการป้อนข้อมูลทรัพยากรตัวแทนรหัสผ่าน ฯลฯ หากคุณใช้.xinitrcคุณจะต้องทำสิ่งเหล่านี้ด้วยตนเอง อีกครั้งฉันอธิบาย Debian ที่นี่ตัวแปร Unix อื่น ๆ อาจตั้งค่าสิ่งที่แตกต่าง การใช้~/.xinitrcเพื่อระบุสิ่งที่ได้รับการดำเนินการเมื่อคุณเรียกใช้startxหรือxinitเป็นสากล
ไม่ว่าคุณจะใช้~/.xinitrcหรือ~/.xsessionไฟล์นี้ (มักจะเป็นเชลล์สคริปต์ แต่ไม่จำเป็นต้องใช้ถ้าคุณต้องการใช้อย่างอื่น) ต้องเตรียมสิ่งที่จำเป็นต้องเตรียม (เช่นการตั้งค่าแป้นพิมพ์ทรัพยากรแอปเพล็ตที่ยังไม่เริ่ม โดยตัวจัดการหน้าต่าง ฯลฯ ) จากนั้นในตอนท้ายให้เรียกใช้โปรแกรมที่จัดการเซสชัน เมื่อสคริปต์สิ้นสุดเซสชันจะสิ้นสุดลง โดยทั่วไปแล้วคุณจะใช้execที่ส่วนท้ายของสคริปต์เพื่อแทนที่สคริปต์ด้วยตัวจัดการเซสชันหรือตัวจัดการหน้าต่าง
ระบบของคุณน่าจะ/usr/bin/startlxdeเป็นผู้จัดการเซสชันเริ่มต้นทั่วทั้งระบบ บนเดเบียนและตราสารอนุพันธ์คุณสามารถตรวจสอบผู้จัดการเซสชันที่มีอยู่ได้
update-alternatives --list x-session-manager
หรือรับรายละเอียด verbose เพิ่มเติมระบุว่าเป็นปัจจุบันด้วย
update-alternatives --display x-session-manager
หาก LXDE ไม่ใช่ค่าเริ่มต้นทั้งระบบและคุณต้องการให้เป็นค่าเริ่มต้นสำหรับบัญชีของคุณคุณสามารถใช้~/.xsessionไฟล์ต่อไปนี้:
#!/bin/sh
exec startlxde
ในบางพันธุ์ Unix ที่จะทำงานเฉพาะสำหรับการเข้าสู่ระบบกราฟิกไม่ได้สำหรับดังนั้นคุณจะต้องสร้างเหมือนกันstartx ~/.xinitrc(หรือไม่เหมือนกัน: ใน~/.xsessionคุณอาจต้องการทำสิ่งอื่น ๆ เนื่องจากเป็นไฟล์แรกที่ถูกเรียกใช้ในเซสชันกราฟิกเช่นคุณอาจวางไว้. ~/.profileใกล้ด้านบนเพื่อตั้งค่าตัวแปรสภาพแวดล้อมบางอย่าง)
หากคุณต้องการลองใช้สภาพแวดล้อมอื่น ๆ แบบครั้งเดียวคุณสามารถระบุโปรแกรมอื่นให้ทำงานบนบรรทัดคำสั่งของstartxตัวเอง startxโปรแกรมมีมุมแหลม: คุณจำเป็นต้องใช้เส้นทางแบบเต็มในการเขียนโปรแกรม
startx /usr/bin/startkde
startxคำสั่งนอกจากนี้ยังช่วยให้คุณระบุข้อโต้แย้งที่จะผ่านไปยังเซิร์ฟเวอร์ ตัวอย่างเช่นหากคุณต้องการเรียกใช้เซสชัน GUI หลายรายการพร้อมกันคุณสามารถส่งหมายเลขการแสดงผลที่แตกต่างกันในแต่ละครั้ง ผ่านข้อโต้แย้งเซิร์ฟเวอร์หลังจากในบรรทัดคำสั่งของ--startx
startx /usr/bin/startkde -- :1
startxเริ่มต้นเซสชัน Xfce4 เริ่มต้น จากการเข้าสู่ระบบผู้ใช้ของภรรยาของฉันใน tty1 หรือ tty2startxคำสั่งของเธอถูกตั้งค่าให้เรียกใช้ Cinnamon (ระบุใน~/.xsession) สำหรับเซิร์ฟเวอร์ X ที่สองฉันไม่ต้องระบุ$DISPLAYดังที่ระบุไว้ในส่วนสุดท้ายของคำตอบของคุณ แม้ว่ามันจะใช้งานได้อย่างแน่นอน มันทำให้$DISPLAYการตั้งค่าที่สองเป็นไปโดยอัตโนมัติ ไม่มีการเข้าสู่ระบบและออกจากเซสชันกราฟิกเพียงแป้นพิมพ์ลัดเพื่อสลับโปรไฟล์ผู้ใช้ ขอบคุณสำหรับคำตอบที่เป็นประโยชน์นี้!