“ .xsession” คืออะไร


62

วัตถุประสงค์ของ.xsessionไฟล์ในโฮมโฟลเดอร์คืออะไร? สิ่งที่ควรใส่ในนั้น สภาพแวดล้อมเดสก์ทอปไม่ได้ใช้ไฟล์ที่และสำหรับการเริ่มต้นจาก X TTY .xinitrcมี

คำตอบ:


58

หากคุณเข้าสู่ระบบในโหมดข้อความให้เริ่มเซสชัน GUI ด้วยxinitหรือสคริปต์ตัวตัดคำstartxจากนั้นxinitทำสิ่งต่อไปนี้:

  • เริ่มต้นเซิร์ฟเวอร์ X (โดยทั่วไปคือสคริปต์/etc/X11/xinit/xserverrc)
  • มักจะเรียกใช้สคริปต์บางตัวใน/etc/X11(โดยทั่วไป/etc/X11/xinit/xinitrc) ขึ้นอยู่กับวิธีการตั้งค่า
  • เรียกใช้~/.xinitrcหากมีอยู่ หากไม่มีอยู่ให้เรียกใช้ไคลเอนต์เริ่มต้น (ตามธรรมเนียมxterm)
  • เมื่อ~/.xinitrcยุติแล้วให้ฆ่าเซิร์ฟเวอร์ X

หากคุณเข้าสู่ระบบในโหมดกราฟิกบนผู้จัดการ X จอแสดงผล (xdm, GDM, KDM, WDM, lightdm, ... ) ประเพณีสิ่งที่จะดำเนินการหลังจากที่คุณเข้าสู่ระบบเป็นสคริปต์บางอย่างในนั้น/etc/X11~/.xsession

~/.xsessionมีบทบาท~/.profileและ~/.xinitrcรวมกัน: มันควรจะทำการเริ่มต้นครั้งแรกของเซสชั่นของคุณ (เช่นกำหนดตัวแปรสภาพแวดล้อม) จากนั้นเปิดตัวโปรแกรมเฉพาะ GUI (โดยปกติอย่างน้อยจัดการหน้าต่าง)

ทุกวันนี้ตัวจัดการการแสดงผล X ส่วนใหญ่จะให้คุณเลือกเซสชัน การเลือกเซสชันเฉพาะเปิดใช้งานสภาพแวดล้อมเดสก์ท็อปเฉพาะผู้จัดการเซสชันผู้จัดการหน้าต่าง สิ่งที่ถูกดำเนินการนั้นเป็นเพียง DE / SM / WM และโปรแกรมใด ๆ ที่มันเลือกที่จะเริ่มต้นขึ้นอยู่กับไฟล์การกำหนดค่าใด ๆ ที่มันเลือกที่จะอ่าน สภาพแวดล้อมที่หลายคนให้“เซสชั่นที่กำหนดเอง” ~/.xsessionที่อ่านแบบดั้งเดิม


3
ฉันไม่ทราบว่า "หลาย ๆ สภาพแวดล้อม" คืออะไร แต่อย่างน้อย kdm ก็ไม่สนใจไฟล์« ~ / .xsession »
Hi-Angel

1
@ Hi-Angel .xsessionไฟล์จะถูกอ่านเฉพาะเมื่อคุณเลือกประเภทเซสชันเฉพาะ ฉันรู้ว่าสำหรับ Gdm นักพัฒนาต้นน้ำไม่ต้องการรวมหนึ่งที่ทำงาน.xsessionโดยค่าเริ่มต้นและปล่อยให้มันขึ้นอยู่กับการกระจายแต่ละครั้งและการกระจายจำนวนมากไม่รบกวนหรือไม่ตระหนักถึงความต้องการ ฉันไม่รู้ว่าสถานการณ์ kdm คืออะไร
Gilles

คุณรู้ไหมฉันพบใน man kdmที่ kdm มีไฟล์ของตัวเองที่/etc/kde4/kdm/Xsessionจะถูกเรียกใช้ในฐานะผู้ใช้หลังจากเข้าสู่ระบบ พวกเขากำลังโกหก - ไฟล์(ซึ่งเป็นปัจจุบัน btw)ไม่เคยถูกแตะต้องโดย kdm ฉันยังลบมันออกเลยและนั่นก็ไม่ได้เปลี่ยนแปลงอะไรเลย
Hi-Angel

1
@ Hi-Angel What Gilles หมายถึงว่าที่หน้าจอเข้าสู่ระบบแบบกราฟิกของคุณคุณมักจะมีเมนูแบบเลื่อนลงซึ่งแสดงรายการสภาพแวดล้อมต่างๆ หากคุณเลือก "KDE" ระบบจะเริ่มต้นและจะละเว้น.xsessionตามที่คุณอธิบาย แต่ถ้าแทนที่จะเป็น "KDE" คุณเลือก "เซสชันที่กำหนดเอง" .xsessionจะถูกเรียกใช้แทน KDE ฉันใช้สิ่งนี้ตัวอย่างเช่นเพราะฉันรันเพียงxfce4-panelและ FVWM 2 เป็น "เดสก์ท็อป" ของฉัน หาก KDE ได้รับการติดตั้งในระบบที่ฉันบังเอิญใช้มันจะถูกละเว้นอย่างสมบูรณ์
Curt J. Sampson

15

การเริ่มต้นเซสชัน X อาจมีความซับซ้อนในทุกวันนี้ จุดเริ่มต้นที่ดีคือสคริปต์/etc/X11/Xsessionเพื่อดูว่าจะดำเนินการอย่างไร

ในระบบ Debian / Ubuntu ของฉันสคริปต์ที่กำหนดตัวแปร/etc/X11/Xsession USERXSESSION=$HOME/.xsessionหลังจากนั้นสคริปต์/etc/X11/Xsession.d/50x11-common_determine-startupจะค้นหาสคริปต์นี้และใช้เป็นเซสชันหลักหากได้รับอนุญาตจากนโยบายระบบใน/etc/X11/Xsession.optionsและหากไม่มีการร้องขอเซสชันอื่นจากตัวจัดการจอแสดงผล


8

ผมขอแนะนำให้คุณลองดูในสมุดคู่มือผู้ดูแลระบบวินโดว์ของ: สำหรับ X รุ่น 11 บทที่ 2 อธิบายถึงวัตถุประสงค์.xsessionและกระบวนการกำหนดค่าทั้งหมดสำหรับการตั้งค่าตัวอย่าง นอกจากนี้มันเป็นทบทวนที่ดีสำหรับทั้งคำศัพท์ที่เกี่ยวข้องกับหน้าต่าง x (และฉันหวังว่าคุณจะไม่ได้รับการลงโทษ :)) คุณสามารถรับหนังสือจาก

http://archive.org/details/xwindowsystemadm08muimiss

แม้ว่าจะค่อนข้างล้าสมัยคุณสามารถค้นหาข้อมูลจำนวนมากเกี่ยวกับแนวคิดพื้นฐานที่ไม่เปลี่ยนแปลงจนกระทั่งวันนี้และอ่านง่ายมาก ยิ่งไปกว่านั้นมันตลกจริงๆที่ได้ดูว่าอะไรคือสิ่งที่สำคัญที่สุดในสมัยนั้น


7

.xsession เป็น startcript แบบดั้งเดิมสำหรับสภาพแวดล้อม X11 ทุกวันนี้กับ sessionmanagers อย่าง kdm มันไม่ได้มีประโยชน์อะไรมากนัก แต่ในระบบตั้งค่าแบบดั้งเดิม นี่คือสิ่งที่ทำงานหลังจากเริ่มต้น X11 ด้วย startx

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.