ฉันพบไฟล์กำหนดค่าสามไฟล์
.xinitrc.xsession.xsessionrc
ฉันรู้ว่าตัวแรกใช้สำหรับการใช้งานstartxและตัวที่สองและสามใช้เมื่อใช้ตัวจัดการการแสดงผล แต่ความแตกต่างระหว่างสองครั้งสุดท้ายคืออะไร?
ฉันพบไฟล์กำหนดค่าสามไฟล์
.xinitrc.xsession.xsessionrcฉันรู้ว่าตัวแรกใช้สำหรับการใช้งานstartxและตัวที่สองและสามใช้เมื่อใช้ตัวจัดการการแสดงผล แต่ความแตกต่างระหว่างสองครั้งสุดท้ายคืออะไร?
คำตอบ:
~/.xinitrcจะถูกดำเนินการโดยซึ่งมักจะถูกเรียกผ่านxinit startxโปรแกรมนี้จะดำเนินการหลังจากเข้าสู่ระบบ: แรกที่คุณเข้าสู่ระบบในคอนโซลข้อความแล้วคุณจะเริ่มต้น GUI startxด้วย บทบาทของ.xinitrcคือการเริ่มต้นส่วน GUI ของเซสชั่นโดยทั่วไปโดยการตั้งค่าบางอย่างที่เกี่ยวข้องกับ GUI เช่นการผูกกุญแจ (กับxmodmapหรือxkbcomp) ทรัพยากร X (กับxrdb) ฯลฯ และเพื่อเปิดตัวจัดการเซสชั่นหรือผู้จัดการหน้าต่าง ( อาจเป็นส่วนหนึ่งของสภาพแวดล้อมเดสก์ทอป)
~/.xsessionจะถูกดำเนินการเมื่อคุณเข้าสู่ระบบในโหมดกราฟิก (บนตัวจัดการการแสดงผล ) และตัวจัดการการแสดงผลจะเรียกใช้ประเภทเซสชัน "กำหนดเอง" (ด้วยตัวจัดการจอแสดงผลเชิงประวัติ xdm .xsessionจะถูกดำเนินการเสมอ แต่ด้วยตัวจัดการจอแสดงผลที่ทันสมัยที่ให้ผู้ใช้เลือกประเภทเซสชันคุณมักจะต้องเลือก“ กำหนดเอง” สำหรับ.xsessionการทำงาน) บทบาทของมันคือการตั้งค่าพารามิเตอร์เวลาเข้าสู่ระบบ (เช่นตัวแปรสภาพแวดล้อม) และเพื่อเริ่มเซสชัน GUI แบบทั่วไป.xsessionคือ
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrcถูกดำเนินการบน Debian (และอนุพันธ์เช่น Ubuntu, Linux Mint, ฯลฯ ) โดยสคริปต์เริ่มต้น X บนการเข้าสู่ระบบ GUI สำหรับทุกประเภทเซสชันและ (ฉันคิดว่า) จากผู้จัดการการแสดงผลทั้งหมด นอกจากนี้ยังดำเนินการจากstartxหากผู้ใช้ไม่มี.xinitrcเพราะในกรณีstartxนั้นกลับมาอยู่ในสคริปต์เริ่มต้นเซสชั่นเดียวกันที่ใช้สำหรับการเข้าสู่ระบบ GUI มันดำเนินการค่อนข้างเร็วหลังจากโหลดทรัพยากร แต่ก่อนที่จะเริ่มโปรแกรมใด ๆ เช่นคีย์เอเจนต์, D-Bus daemon เป็นต้นโดยทั่วไปจะตั้งค่าตัวแปรที่สามารถใช้งานได้โดยสคริปต์เริ่มต้นในภายหลัง ไม่มีเอกสารอย่างเป็นทางการที่ฉันรู้คุณต้องขุดลงไปในแหล่งที่มาเพื่อดูว่าอะไรทำงานได้
.xinitrcและ.xsessionเป็นคุณสมบัติทางประวัติศาสตร์ของระบบ X11 Window ดังนั้นจึงควรพร้อมใช้งานและมีพฤติกรรมที่คล้ายคลึงกันในระบบ Unix ทั้งหมด ในทางกลับกัน.xsessionrcคุณลักษณะของเดเบียนและดิสทริบิวชันที่ไม่ได้ขึ้นอยู่กับเดเบียนก็คือมันไม่มีเว้นแต่ว่าพวกเขาจะใช้สิ่งที่คล้ายกัน
.xprofileคล้ายกันมาก.xsessionrcแต่เป็นส่วนหนึ่งของสคริปต์เริ่มต้นเซสชันของ GDM (เครื่องมือจัดการดิสเพลย์ GNOME) ดังนั้นจึงอ่านได้เฉพาะเมื่อคุณลงชื่อเข้าใช้ด้วย GDM
ตามการสนทนาอีกครั้งstartx + ~ / .xsession และ no ~ / .xinitrc ส่งผลให้ฟังก์ชันการทำงานลดลง (xfce4, sid)
ประการแรก:
.xsessionrcสำหรับเก็บตัวแปรสภาพแวดล้อมโลก ความสำคัญคือของฉันประการที่สอง:
40x11-common_xsessionrcในมีที่มาก่อน/etc/X11/Xsession.d50x11-common_determine-startupดังนั้น.xsessionrcจะอ่านก่อน.xsessionและตัวแปรสภาพแวดล้อมใด ๆ.xsessionตั้งจะกลายเป็นใช้ได้เพื่อการใช้งานที่ดำเนินการโดยคำสั่งใน
อ่านเพิ่มเติม: