3
การปิดระบบที่สง่างามใน ArchLinux
ฉันกำลังพยายามที่จะปิด / รีบูตที่สง่างามใน ArchLinux ด้วย GNOME Shell ตอนนี้เมื่อฉันขอปิดมันทันทีปิดโดยไม่ต้องให้เวลาโปรแกรมเปิดเพื่อปิด / บันทึกไฟล์ที่เปิดอย่างสง่างาม เป็นผลให้เมื่อใดก็ตามที่ฉันรีสตาร์ท Chrome (เช่น) มันจะบอกฉันว่าเซสชั่นไม่ได้ปิดอย่างถูกต้อง ฯลฯ โดยการอ่านบนเว็บฉันได้เรียนรู้ว่า systemd ในขณะที่ปิดกระบวนการมันก็ส่งSIGTERMตามด้วยSIGKILLถ้ากระบวนการไม่ปิด ด้วยการหมดเวลาที่กำหนด อย่างไรก็ตามฉันสังเกตเห็นว่าในระบบของฉันSIGKILLจะถูกส่งทันทีหลังจากSIGTERMและฉันเดาว่านี่เป็นสาเหตุของการยกเลิกโปรแกรมที่ไม่สง่างาม ฉันได้พบเอกสารบางอย่างซึ่ง (ถ้าฉันอ่านอย่างถูกต้อง) ระบุว่าการหมดเวลาก่อนที่จะส่งSIGKILLสามารถตั้งค่าได้โดยTimeoutStopSec=ตัวเลือก นอกจากนี้การส่งSIGKILLอาจถูกปิดใช้งานโดยSendSIGKILL=ตัวเลือก แต่ฉันไม่สามารถหาตำแหน่งที่จะกำหนดค่าตัวเลือกเหล่านั้น ... จะมีไฟล์การกำหนดค่าการปิดระบบ / รีบูตที่ฉันสามารถตั้งค่าตัวเลือกเหล่านั้น แก้ไข: ฉันทำการทดสอบและพบสิ่งที่น่าสนใจสองอย่าง: ถ้าฉันปิดโครเมี่ยมด้วยตนเองเช่นนี้killall -SIGTERM chromeมันจะไม่บ่นว่ามันไม่ได้ปิดอย่างถูกต้องในครั้งต่อไปที่ฉันเริ่มมันอีกครั้ง ถ้าฉันปิดมันแบบนี้แทนkillall -SIGKILL chromeมันจะบ่น นี่บอกฉันว่า chrome กำลังจัดการ SIGTERM อย่างถูกต้อง ดูผลลัพธ์ของโพรซีเดอร์การปิดของฉัน systemd พิมพ์Sending SIGTERM...ตามมาทันทีSending SIGKILL... ตามความคิดเห็นด้านล่าง systemd จัดการกระบวนการของมันเท่านั้น …