อะไรทำให้ Nautilus รีสตาร์ทเมื่อใดก็ตามที่ฉันฆ่ามัน?


28

ฉันหยุดฆ่า Nautilus และภายในหนึ่งวินาทีมันกลับมาพร้อม PID ใหม่!

Nautilus ที่รีสตาร์ทแสดงในรายการกระบวนการ แต่ไม่มี GUI จนกว่าฉันจะเปิดตัว Nautilus ด้วยตนเอง ... ฉันได้ยินมาว่ามีการใช้ Nautilus ใน lockstep กับเดสก์ท็อป ... บางทีนั่นอาจเป็นเหตุผล (?)

มีโปรแกรม "จ้องจับผิด" บางอย่างที่คอยจับตาดูโปรแกรม distro-critical หรือไม่? การตรวจสอบ Nautilus ไม่เหมือนปัญหาเคอร์เนล Linux ดังนั้นฉันแค่สงสัยว่าเกิดอะไรขึ้นที่นี่

คำตอบ:


20

Gnome ใช้เครื่องมือจัดการเซสชัน ( gnome-session) เพื่อติดตามสิ่งที่ต้องทำ รับผิดชอบในการนำเซสชันทั้งหมดกระบวนการย่อยทั้งหมดการกู้คืนสถานะและบันทึกเมื่อคุณออกจากระบบ

GNOME มีเครื่องมือที่ช่วยให้แอปพลิเคชันของคุณทำงานได้อย่างราบรื่นจากแต่ละเซสชั่น ผู้ใช้สามารถออกจากระบบด้วยแอปพลิเคชันที่ทำงานอยู่และเรียกคืนแอปพลิเคชันเหล่านั้นได้อย่างสมบูรณ์เมื่อลงชื่อเข้าใช้ - จากGnome Documentation Library

เหนือสิ่งอื่นใดผู้จัดการเซสชันพยายามที่จะทำให้อินสแตนซ์ของ Nautilus ทำงานอยู่ Nautilus ต้องลงทะเบียนกับตัวจัดการเซสชันสำหรับสิ่งนั้น - ซึ่งทำตามค่าเริ่มต้น ตามธรรมชาติมีตัวเลือกบรรทัดคำสั่งเพื่อปิดการใช้งาน:

nautilus --sm-disable

คุณสามารถฆ่ากระบวนการ Nautilus ที่กำลังทำงานอยู่ให้ดีโดยการเรียกใช้

killall -9 nautilus


ขอบคุณ Stefano .. คุณให้ภาพรวมที่ดีและนั่นคือสิ่งที่ฉันเป็นหลังจากนั้น แต่ตามปกติแล้วคำอธิบายสามารถนำคำถามอื่นมาถาม ... ฉันจะพูดถึงหนึ่งตอนนี้: ฉันวิ่งnautilus --sm-disable(ผู้ใช้และ sudo) สิ่งนี้อาจปิดใช้งานการเชื่อมต่อกับตัวจัดการเซสชัน แต่ตัวจัดการเซสชันได้ถูกต้องเมื่อเริ่มต้น nautilus ใหม่ (ด้วย "nautilus --sm-disable" แสดงในรายการกระบวนการ) ... ดังนั้นพารามิเตอร์นี้จะมีผลเฉพาะถ้ามัน ถูกนำไปใช้เมื่อเริ่มต้นเซสชัน (เทียบกับช่วงกลางเซสชัน) และมีการแยก ram ที่ร้ายแรงเมื่อปิดการใช้งานหรือไม่ (ฉันคิดว่าการติดตั้งอัตโนมัติจะหายไป แต่ ... ?
Peter.O

ดีnautilus --sm-disableในคุณสมบัติที่ไม่มีเอกสาร ดังนั้นจึงเป็นการยากที่จะพูด แต่โปรดจำไว้ว่าหอยโข่งจะเริ่มใหม่ทันทีที่มันถูกฆ่าคุณต้องเริ่มต้นอินสแตนซ์แรกด้วยพารามิเตอร์นี้ killall nautilus && nautilus --sm-disableจะไม่ทำงาน คำสั่งไม่ได้ปิดใช้งานคุณสมบัติสำหรับอินสแตนซ์ที่ใช้งานของ nautilus คุณอาจลองรวมคำตอบของฉันกับแอนดรูบางอย่างเข้าด้วยกัน ;-)
Stefano Palazzo

killall -9 nautilusใช้
RolandiXor

nautilus --sm-disableไม่ทำงานใน Ubuntu 15.10 ( Unknown option --sm-disable) ยังไม่มีเซสชั่น Gnome
Hubro

11

ตามที่คนอื่น ๆ ได้กล่าวไว้จะgnome-sessionเกิดnautilusกระบวนการขึ้นใหม่โดยอัตโนมัติ มันยังทำเช่นนั้นgnome-panelและgnome-wm(ซึ่งจะเริ่มจัดการหน้าต่างที่กำหนดค่าโดยผู้ใช้ปกติcompizหรือmetacity)

พฤติกรรมนี้สามารถปรับแต่งได้ผ่านทางdesktop > gnome > session > required_componentsปุ่ม gconf

required_components คีย์ gconf

การแก้ไขค่าเหล่านี้อาจเป็นประโยชน์หากคุณต้องการรันโดยไม่ใช้พาเนล GNOME และใช้ Docky หรือ AWN เท่านั้น


6

gnome-sessionรับผิดชอบการตอบสนองต่อหอยโข่ง ในฐานะที่เป็นผู้ปกครองในต้นไม้กระบวนการไม่มีกระบวนการอื่นที่สามารถเกิดขึ้นได้

ps -eaH แสดงแผนผังกระบวนการลำดับชั้นที่คัดลอกมาที่นี่:

    1 ?        00:00:00 init
 1113 ?        00:00:00   gdm-binary
11391 ?        00:00:00     gdm-simple-slav
11396 tty8     00:00:13       Xorg
11465 ?        00:00:00       gdm-session-wor
11629 ?        00:00:00         gnome-session
11746 ?        00:00:02           nautilus

ขอบคุณ msw ... นั่นเป็นรายการที่ให้ข้อมูล (-eaH)
Peter.O

5

Chipaca & andrewsomething อยู่ใกล้กัน ... :)

/desktop/gnome/session/required_components_listรายการที่สำคัญ "ส่วน" ที่ควรจะตรวจสอบโดยgnome-sessionและเริ่มต้นใหม่โดยอัตโนมัติเมื่อพวกเขาออกจาก ค่าเริ่มต้นสำหรับ GNOME 2 [windowmanager,panel,filemanager]เป็นสิ่งที่ต้องการ

หากคุณต้องการที่จะป้องกันไม่ให้หอยโข่ง (หรืออะไรก็ตาม "องค์ประกอบ filemanager" คุณได้กำหนดค่า) จากการได้รับ (อีกครั้ง) [windowmanager,panel]ที่ตั้งขึ้นโดยกลไกนี้คุณสามารถเปลี่ยนค่าเป็น (คุณยังสามารถให้มันเริ่มในระหว่างการเข้าสู่ระบบโดยเพิ่มลงในรายการของโปรแกรมเริ่มต้นเซสชัน แต่มันจะไม่เริ่มต้นใหม่โดยอัตโนมัติอีกต่อไป)

แอปพลิเคชันใด (พร้อมพารามิเตอร์ commandline ใด) ที่เริ่มต้นสำหรับแต่ละองค์ประกอบที่กำหนดไว้/desktop/gnome/session/required_componentsในคีย์ที่มีชื่อขององค์ประกอบ มีความเป็นไปได้ที่ส่วนประกอบเพิ่มเติมจะแสดงรายการไว้ที่นี่มากกว่าที่ใช้ใน/desktop/gnome/session/required_components_listคีย์

ตอนนี้ในกรณีของหอยโข่งโดยค่าเริ่มต้นเมื่อมันไม่ได้ทำงานมันจะเริ่มในพื้นหลังและถ้า/apps/nautilus/preferences/show_desktopตั้งค่าคีย์มันจะแสดงเดสก์ท็อป นอกจากนี้ยังเป็นไปได้ที่จะบอกให้หอยโข่งทำงานแตกต่างกับพารามิเตอร์บรรทัดคำสั่ง


นี่คือคำตอบที่ถูกต้อง
Travis Watkins

2

Nautilus กำลังเริ่มต้นใหม่เนื่องจากคุณวาดเดสก์ท็อป เข้าสู่

gconftool-2 --type bool --set /apps/nautilus/preferences/show_desktop False

ในสถานีเพื่อหยุดการทำเช่นนั้นแล้วมันไม่ควรกลับมาหลังจากการฆ่า


show_desktop = Falseตัวเลือกที่ไม่ได้ป้องกันไม่ให้ Nautilus จากการเริ่มต้นใหม่ ... ดังนั้นผมคิดว่า Nautilus จะต้องทำเพิ่มเติมอยู่เบื้องหลังมากกว่าเพียงแค่ว่า ... โดยวิธีการที่ผมชอบตัวเลือกนี้ที่ผมไม่ได้เก็บอะไรบนเดสก์ทอปและมัน เป็นที่น่ารำคาญเมื่อภาพหน้าจอบันทึกภาพอยู่ที่นั่น (ดูเหมือนจะไม่มีวิธีการเปลี่ยนแปลงใด ๆ ) .... นอกจากนี้เพิ่งสังเกตเห็นตัวเลือกอื่นที่ฉันชอบ : show_advanced_permissions True... ขอบคุณ :)
Peter.O

0

โดยรวมทำได้:

gconftool-2 -s -t bool /desktop/gnome/background/draw_background false
gconftool-2 -s -t bool /apps/nautilus/preferences/show_desktop false

และ

sudo gedit /usr/share/applications/nautilus.desktop

เปลี่ยนไป:

X-GNOME-AutoRestart = false

(พบได้ที่: https://bbs.archlinux.org/viewtopic.php?id=119254 )

นั่นคือทั้งหมด ...

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