เร่งกระบวนการปิดระบบใน OS X

เมื่อคุณปิดระบบ Mac OS X จะพยายามออกจากโปรแกรมและบริการพื้นหลังอย่างหมดจด อย่างไรก็ตามในบางกรณีการดำเนินการนี้อาจใช้เวลานานมากดังนั้นระบบจะรอเป็นนาทีก่อนที่จะปิดตัวลงในที่สุด บางครั้งนี่คือระบบที่รอการโต้ตอบเช่นคุณบันทึกเอกสาร แต่ในบางครั้งมันเป็นเพราะบริการพื้นหลังหยุดตอบสนองและระบบกำลังรอเวลาที่กำหนดไว้ล่วงหน้าก่อนที่จะบังคับให้พวกเขาออกจาก

โดยทั่วไปแล้ว OS X ควรใช้เวลาสักครู่ในการปิดเครื่องดังนั้นหากระบบของคุณใช้เวลานานอย่างต่อเนื่องนั่นแสดงให้เห็นปัญหาที่ต้องแก้ไข บางครั้งสิ่งนี้อาจเป็นอุปกรณ์ต่อพ่วงที่มีปัญหาหรือสองอย่างหรืออาจมาจากการกำหนดค่าที่ผิดพลาดของระบบของคุณ ในกรณีเหล่านี้คุณควรลองขั้นตอนการแก้ไขปัญหาเบื้องต้นเพื่อช่วยระบุและแก้ไขปัญหา

อย่างไรก็ตามหากคุณพบว่ามีการปิดเครื่องอย่างต่อเนื่องเป็นระยะเวลานาน แต่ในช่วงเวลาสุ่มมากขึ้นอาจเกิดขึ้นได้และอาจเกิดจากระบบที่รอกระบวนการพื้นหลังบางอย่างที่จะออก

ตามค่าเริ่มต้นระบบจะรอให้กระบวนการส่วนหลังสิ้นสุดด้วยตนเอง แต่ถ้าไม่เช่นนั้นระบบจะส่งสัญญาณการฆ่าดังกล่าวหลังจาก 20 วินาทีและหากกระบวนการเหล่านี้หมดเวลาในช่วงเวลาที่ต่างกัน จำนวนนาที

ดังนั้นสำหรับกระบวนการพื้นหลังบางอย่างที่มีแนวโน้มที่จะวางสายมากกว่ากระบวนการอื่นเพียงแค่เปลี่ยนเวลาเริ่มต้น 20 วินาทีนี้เป็นค่าที่ต่ำกว่าจะทำให้ระบบออกจากกระบวนการเหล่านี้ก่อนหน้านี้ ในขณะที่การบังคับให้กระบวนการออกจากระบบไม่ใช่วิธีปฏิบัติที่ดีที่สุดระบบก็พร้อมที่จะทำเช่นนี้ในระหว่างการปิดระบบ อีกครั้ง OS X อนุญาตให้กระบวนการหน้าต่าง 20 วินาทีเพื่อออกจากนั้นระบบจะฆ่ากระบวนการแรง

บริการพื้นหลังที่ดูเหมือนว่าเป็นต้นเหตุที่พบบ่อยในการหมดเวลานั้นคือบริการที่จัดการการสื่อสารระหว่างกระบวนการการจัดการการรับรองความถูกต้องและกิจกรรมทรัพยากรดิสก์และเครือข่าย ใน OS X รวมถึงสิ่งต่อไปนี้:

  • AppleEvents - สิ่งนี้อนุญาตให้กระบวนการสื่อสารและสั่งการซึ่งกันและกัน (และเป็นพื้นฐานสำหรับ AppleScript) อาจหมดเวลาจากการขัดจังหวะในการสื่อสารระหว่างกระบวนการ (ตัวอย่างเช่นหากกระบวนการหนึ่งถูกบังคับให้ปิดเมื่อมีการจัดการเหตุการณ์)
  • securityd - สิ่งนี้จัดการการเข้าถึง keychains และการอนุญาตด้านความปลอดภัยอื่น ๆ และอาจหมดเวลาหากรอการโต้ตอบกับผู้ใช้สำหรับการร้องขอการตรวจสอบสิทธิ์บางอย่าง
  • mDNSResponder - จัดการการกระทำของ DNS แบบหลายผู้รับรวมถึงการค้นหาเซิร์ฟเวอร์เครือข่ายและบริการโดยอัตโนมัติ นี่อาจหมดเวลาจากปัญหาเกี่ยวกับการกำหนดค่าเครือข่ายท้องถิ่น
  • diskarbitrationd - อนุญาโตตุลาการดิสก์ตรวจสอบการติดตั้งและการเข้าถึงของระบบไฟล์ในท้องถิ่นและอาจหมดเวลาจากความผิดพลาดในไดรฟ์ที่ใช้หรือถ้าไดรฟ์ออฟไลน์หรือเข้าสู่โหมดสลีปและใช้เวลาสักครู่ในการตื่นขึ้น
  • การตรวจสอบ Apple ID - จัดการการตรวจสอบ Apple ID ของคุณสำหรับบริการต่างๆ อาจหมดเวลาจากการเข้าถึงเครือข่ายที่ไม่ดีหรือขาดการตอบสนองจากเซิร์ฟเวอร์ของ Apple

การจัดการการหมดเวลาของกระบวนการเหล่านี้ดำเนินการโดย system launcher process launchd ซึ่งเก็บการหมดเวลาเริ่มต้น 20 วินาทีสำหรับกระบวนการ ด้วยการสั่งให้ตัวเรียกใช้งานเพื่อลดระยะเวลานี้ลงครึ่งหนึ่งคุณสามารถเร่งความเร็วการปิดเครื่องที่ล่าช้าเนื่องจากกระบวนการเหล่านี้

ในการเปลี่ยนการหมดเวลาคุณจะต้องแก้ไขไฟล์เรียกใช้ daemon ที่ระบบใช้สำหรับบริการเหล่านี้ก่อนอื่นให้ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลระบบของคุณแล้วเรียกใช้คำสั่งต่อไปนี้ซึ่งคุณสามารถคัดลอกและวาง สองบรรทัด) ในยูทิลิตี้ OS X Terminal (ในโฟลเดอร์ Applications> Utilities):

sudo ค่าเริ่มต้นเขียน / ระบบ / ไลบรารี / LaunchDaemons / c \

om.apple.coreservices.appleevents ExitTimeOut -int 5

sudo ค่าเริ่มต้นเขียน / ระบบ / ไลบรารี / LaunchDaemons / c \

om.apple.securityd ExitTimeOut -int 5

sudo ค่าเริ่มต้นเขียน / ระบบ / ไลบรารี / LaunchDaemons / c \

om.apple.mDNSR ตอบกลับ ExitTimeOut -int 5

sudo ค่าเริ่มต้นเขียน / ระบบ / ไลบรารี / LaunchDaemons / c \

om.apple.diskarbitrationd ExitTimeOut -int 5

sudo ค่าเริ่มต้นเขียน / ระบบ / ไลบรารี / LaunchAgents / com. \

apple.coreservices.appleid.authentication ExitTimeOut -int 5

ในคำสั่งเหล่านี้ตามที่เขียนไว้ข้างต้นค่าการหมดเวลาถูกตั้งค่าเป็น "5" หมายถึงระบบจะรอ 5 วินาทีก่อนที่จะฆ่ากระบวนการระหว่างปิดระบบ แต่คุณสามารถเปลี่ยนค่านี้เป็นค่าจำนวนเต็มใด ๆ ที่มากกว่าศูนย์ (ค่าศูนย์ปิดการใช้งาน หมดเวลาดังนั้นมันจะรออย่างไม่มีกำหนด) โปรดทราบว่าคำสั่งเหล่านี้คือคำสั่ง "sudo" ซึ่งหมายความว่าเมื่อคุณเรียกใช้คำสั่งแรกคุณจะต้องระบุรหัสผ่านผู้ดูแลระบบของคุณ (ซึ่งจะไม่แสดงใน Terminal เมื่อได้รับแจ้ง) แต่ไม่จำเป็นต้องให้รหัสผ่านสำหรับคำสั่งที่ตามมา .

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

ในการเลิกทำการกระทำเหล่านี้คุณสามารถเรียกใช้คำสั่งอีกครั้ง แต่ด้วยค่า 20 หรือคุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อลบรายการการตั้งค่า "ExitTimeOut" ซึ่งโดยค่าเริ่มต้นแล้วจะไม่รวมอยู่ใน launch daemon และสคริปต์ของเอเจนต์เหล่านี้

sudo ค่าเริ่มต้นลบ / ระบบ / ไลบรารี / LaunchDaemons / c \

om.apple.coreservices.appleevents ExitTimeOut

sudo ค่าเริ่มต้นลบ / ระบบ / ไลบรารี / LaunchDaemons / c \

om.apple.securityd ExitTimeOut

sudo ค่าเริ่มต้นลบ / ระบบ / ไลบรารี / LaunchDaemons / c \

om.apple.mDNSR ตอบกลับ ExitTimeOut

sudo ค่าเริ่มต้นลบ / ระบบ / ไลบรารี / LaunchDaemons / c \

om.apple.diskarbitrationd ExitTimeOut

sudo ค่าเริ่มต้นลบ / ระบบ / ไลบรารี / LaunchAgents / com \

.apple.coreservices.appleid.authentication ExitTimeOut


 

แสดงความคิดเห็นของคุณ