ฉันพบไฟล์กำหนดค่าสามไฟล์
.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.d
50x11-common_determine-startup
ดังนั้น.xsessionrc
จะอ่านก่อน.xsession
และตัวแปรสภาพแวดล้อมใด ๆ.xsession
ตั้งจะกลายเป็นใช้ได้เพื่อการใช้งานที่ดำเนินการโดยคำสั่งใน
อ่านเพิ่มเติม: