ฉันต่อสู้กับสิ่งนี้มาระยะหนึ่งแล้ว มันเกี่ยวข้องกับคำถามนี้ ฉันอยากจะรู้ว่าเกิดอะไรขึ้นเมื่อฉันเลือกที่จะปิดกล่อง Linux ของฉันจาก GUI เอกสารนี้ดูเหมือนว่าจะไม่ดี (ถ้ามี)
เป็นการดีที่ฉันหวังว่าจะได้คำตอบ DE- และผู้ไม่เชื่อเรื่องพระเจ้า นอกจากนี้ฉันสนใจกรณีเฉพาะของ Mandriva 2010.1 และ Debian 6.x (Squeeze) และ 7.0 (Wheezy) ทั้งหมดที่ใช้ Gnome (หากคุณสนใจอย่างใกล้ชิดใช่ว่านั่นคือ Gnome 2 และ Gnome 3)
โดยทั่วไปฉันต้องการทราบว่าคำสั่ง / สคริปต์ / ลำดับของสคริปต์เริ่มต้นเมื่อฉันกด "ปิด" หรือ "เริ่มต้นใหม่" เพื่อให้ฉันสามารถปรับเปลี่ยนพฤติกรรมของพวกเขา บางกระทู้ในฟอรั่มที่ฉันดูแนะนำการแฮ็ก/etc/polkit-1/*
แต่โครงสร้างไดเรกทอรีนี้เป็นเพียงโครงกระดูกในกล่อง Debian (Squeeze) ของฉัน
ใครช่วยได้บ้าง
แก้ไข
สิ่งที่ฉันได้ลองมาแล้ว
- แทนที่
shutdown
ไฟล์ปฏิบัติการด้วยสคริปต์ของฉันเอง สิ่งนี้ไม่ทำงาน: เมื่อฉันกดshutdown
Gnome ล็อกเอาต์โดยไม่ใช้สคริปต์ของฉัน - พยายามแก้ไขเมนู Gnome 2 ไม่มีความสุข: ตัวเลือก "ปิดเครื่อง", "ออกจากระบบ" และ "ล็อคหน้าจอ" ไม่ปรากฏในเครื่องมือแก้ไขเมนู
- ดูสิ
/usr/share/menu
ไม่มีประโยชน์อะไรที่นั่น
ลู่ทางที่เป็นไปได้สำหรับการแก้ปัญหา
strace
เลือกตัวเลือก GUI (เป็นไปได้ไหม)- ดู
shutdown
ซอร์สโค้ดของ - ดู
gnome-session
ซอร์สโค้ดของ
ปรับปรุง
ตามความคิดเห็นของฉันเกี่ยวกับคำตอบด้านล่างฉันได้ดูpolkit
การกระทำภายใต้/usr/share/polkit-1/actions/
และพบ (ในไฟล์org.freedesktop.consolekit.policy
) การกระทำที่เรียกorg.freedesktop.consolekit.system.stop-multiple-users
ว่าพ่นข้อความ
System policy prevents stopping the system when other users are logged in
ฉันกำลังคิด (เนื่องจากรูปorg.freedesktop.*
แบบการตั้งชื่อ) ว่านี่เป็นสัญญาณบางชนิดที่ส่งไปยัง DM ผ่าน D-BUS นอกจากนี้ข้อความนี้จะปรากฏขึ้นเมื่อพยายามปิดกราฟิกในขณะที่ผู้ใช้รายอื่นเข้าสู่ระบบดังนั้นกลไกที่ทริกเกอร์จะต้องเป็นกลไกเดียวกันที่ถูกเรียกเมื่อเลือก "ปิดเครื่อง" หรือ "ปิดเครื่อง" จาก GUI
ใครสามารถยืนยัน / ปฏิเสธได้ มีความเป็นไปได้ที่จะสกัดสัญญาณนี้หรือดัดแปลงมันได้หรือไม่?
/etc/init.d/rc.local
เพื่อเรียกสคริปต์เมื่อถูกหยุด