Tăng tốc quá trình tắt máy trong OS X

Khi bạn tắt máy Mac, OS X sẽ cố gắng xóa sạch các chương trình và dịch vụ nền; tuy nhiên, trong một số trường hợp, việc này có thể mất một thời gian đặc biệt dài, để hệ thống chờ trong vài phút trước khi tắt. Đôi khi, đây là hệ thống đang chờ tương tác, chẳng hạn như bạn lưu tài liệu, nhưng đôi khi đó là do các dịch vụ nền đã ngừng đáp ứng và hệ thống đang chờ một khoảng thời gian định trước trước khi buộc họ phải thoát.

Nói chung, OS X chỉ mất vài giây để tắt, vì vậy nếu hệ thống của bạn liên tục mất nhiều thời gian, điều đó cho thấy một vấn đề cần được giải quyết. Đôi khi, đây có thể chỉ là một hoặc hai thiết bị ngoại vi có vấn đề hoặc có thể là do một số cấu hình bị lỗi của hệ thống của bạn. Trong những trường hợp này, bạn nên thử một số quy trình khắc phục sự cố cơ bản để giúp xác định và khắc phục sự cố.

Tuy nhiên, nếu bạn gặp phải tắt máy thường xuyên nhưng trong khoảng thời gian ngẫu nhiên hơn, thì chúng có thể là tình huống và có thể do hệ thống chờ trên một số quy trình nền để thoát.

Theo mặc định, hệ thống sẽ chờ các quá trình nền tự kết thúc, nhưng nếu không thì nó sẽ gửi tín hiệu tiêu diệt đó sau 20 giây và nếu các quá trình này hết thời gian ở các khoảng thời gian khác nhau, điều này có thể kéo dài thời gian tắt máy sang số phút

Do đó, đối với một số quy trình nền có xu hướng treo nhiều hơn các quy trình khác, chỉ cần thay đổi thời gian 20 giây mặc định này thành giá trị thấp hơn sẽ khiến hệ thống thoát khỏi các quy trình này sớm hơn. Mặc dù buộc các quy trình phải thoát ra không phải là cách tốt nhất, hệ thống đã sẵn sàng thực hiện việc này trong khi tắt máy. Một lần nữa, OS X chỉ cho phép quá trình một cửa sổ 20 giây thoát ra và sau đó hệ thống sẽ giết chết quá trình một cách mạnh mẽ.

Các dịch vụ nền dường như là thủ phạm phổ biến trong thời gian chờ như vậy là những dịch vụ xử lý giao tiếp giữa các quá trình, quản lý xác thực và hoạt động tài nguyên mạng và đĩa. Trong OS X, chúng bao gồm:

  • AppleEvents - Điều này cho phép các quá trình giao tiếp và ra lệnh cho nhau (và là cơ sở cho AppleScript). Nó có thể hết thời gian do sự gián đoạn trong giao tiếp giữa các quá trình (ví dụ: nếu một quy trình buộc phải thoát khi các sự kiện đang được quản lý).
  • securityd - Điều này quản lý quyền truy cập vào móc khóa và các ủy quyền bảo mật khác và có thể hết thời gian nếu chờ tương tác của người dùng đối với một số yêu cầu xác thực.
  • mDNSResponder - Quản lý các hành động DNS phát đa hướng, bao gồm tự động phát hiện các máy chủ và dịch vụ mạng. Điều này có thể hết thời gian từ các vấn đề với cấu hình mạng cục bộ.
  • đĩaarbitrationd - Trọng tài đĩa giám sát việc gắn và khả năng truy cập của các hệ thống tệp cục bộ và có thể hết thời gian do lỗi trong các ổ đĩa đang sử dụng hoặc nếu một ổ đĩa ngoại tuyến hoặc vào chế độ ngủ và mất một lúc để thức dậy.
  • Xác thực ID Apple - quản lý việc xác minh ID Apple của bạn cho các dịch vụ khác nhau; có thể hết thời gian truy cập mạng kém hoặc thiếu phản hồi từ các máy chủ của Apple.

Việc quản lý thời gian chờ của các quy trình này được thực hiện bởi launchd quy trình của trình khởi chạy hệ thống, giữ thời gian chờ mặc định 20 giây cho các quy trình. Bằng cách hướng dẫn trình khởi chạy rút ngắn thời gian này xuống một nửa, bạn có thể tăng tốc đáng kể các lần tắt máy bị trễ do các quy trình này.

Để thay đổi thời gian chờ, bạn sẽ cần sửa đổi các tệp daemon khởi chạy mà hệ thống sử dụng cho các dịch vụ này, vì vậy trước tiên hãy chắc chắn rằng bạn đã sao lưu hệ thống của mình, sau đó chạy các lệnh sau, bạn có thể sao chép và dán (mỗi lệnh là hai dòng) vào tiện ích OS X Terminal (trong thư mục Ứng dụng> Tiện ích):

sudo mặc định ghi / Hệ thống / Thư viện / LaunchDaemons / c \

om.apple.coreservice.appleevents ExitTimeOut -int 5

sudo mặc định ghi / Hệ thống / Thư viện / LaunchDaemons / c \

om.apple.securityd ExitTimeOut -int 5

sudo mặc định ghi / Hệ thống / Thư viện / LaunchDaemons / c \

om.apple.mDNSResponder ExitTimeOut -int 5

sudo mặc định ghi / Hệ thống / Thư viện / LaunchDaemons / c \

om.apple.diskarbitrationd ExitTimeOut -int 5

sudo mặc định ghi / Hệ thống / Thư viện / LaunchAgents / com. \

apple.coreservice.appleid.authentication ExitTimeOut -int 5

Trong các lệnh như được viết ở trên, giá trị thời gian chờ được đặt thành "5", nghĩa là hệ thống sẽ đợi 5 giây trước khi tắt quá trình trong khi tắt máy, nhưng bạn có thể thay đổi giá trị này thành bất kỳ giá trị nguyên nào lớn hơn 0 (giá trị 0 sẽ vô hiệu hóa thời gian chờ, vì vậy nó sẽ chờ đợi vô thời hạn). Lưu ý rằng đây là các lệnh "sudo", có nghĩa là khi bạn chạy lệnh đầu tiên, bạn sẽ cần cung cấp mật khẩu quản trị viên (sẽ không hiển thị trong Terminal khi được nhắc), nhưng sau đó sẽ không cần cung cấp mật khẩu cho các lệnh tiếp theo .

Dán cả hai dòng của mỗi lệnh được đưa ra ở trên vào Terminal, thay đổi giá trị 5 thành số khác nếu bạn muốn (bạn có thể chạy lại các lệnh bất cứ lúc nào với các giá trị khác nhau). Khi hoàn tất, hãy khởi động lại máy tính của bạn, sau đó xem liệu điều này có cải thiện thời gian tắt máy của bạn hay không.

Để hoàn tác các hành động này, bạn có thể chạy lại các lệnh nhưng với giá trị là 20 hoặc bạn có thể chạy các lệnh sau để xóa mục nhập cài đặt "ExitTimeOut", theo mặc định không có trong các tập lệnh khởi động và tác nhân daemon này:

sudo mặc định xóa / Hệ thống / Thư viện / LaunchDaemons / c \

om.apple.coreservice.appleevents ExitTimeOut

sudo mặc định xóa / Hệ thống / Thư viện / LaunchDaemons / c \

om.apple.securityd ThoátTimeOut

sudo mặc định xóa / Hệ thống / Thư viện / LaunchDaemons / c \

om.apple.mDNSResponder ThoátTimeOut

sudo mặc định xóa / Hệ thống / Thư viện / LaunchDaemons / c \

om.apple.diskarbitrationd ThoátTimeOut

sudo mặc định xóa / Hệ thống / Thư viện / LaunchAgents / com \

.apple.coreservice.appleid.authentication ExitTimeOut


 

Để LạI Bình LuậN CủA BạN