Ускорете процеса на изключване в OS X

Когато изключите своя Mac, OS X ще се опита да излезе от програмите и фоновите услуги. въпреки това, при някои обстоятелства това може да отнеме изключително дълго време, така че системата да изчака няколко минути, преди най-накрая да се изключи. Понякога това е системата, която чака взаимодействие, като например съхраняване на документ, но в други случаи това е така, защото фоновите услуги са спрели да отговарят и системата изчаква предварително определено време, преди да ги принуди да се откажат.

Обикновено OS X би трябвало да отнеме само няколко секунди, така че ако системата ви отнема дълго време, това предполага проблем, който трябва да бъде разрешен. Понякога това може да бъде проблемно периферно устройство или две, или може да е от някаква неправилна конфигурация на вашата система. В тези случаи трябва да опитате някои основни процедури за отстраняване на неизправности, за да идентифицирате и отстраните проблема.

Въпреки това, ако се сблъсквате с дълги редовни изключвания, но на по-случайни интервали, тогава те могат да бъдат ситуационни и могат да бъдат причинени от изчакване на системата на някои фонови процеси.

По подразбиране системата ще изчака процесите на фона да завършат самостоятелно, но ако не, тогава ще изпрати такъв процес на сигнал за убиене след 20 секунди, и ако тези процеси изтекат на различни интервали, това може да удължи изключването до брой минути.

Следователно, за някои фонови процеси, които са склонни да затворят повече от други, просто промяната на това по подразбиране 20-секундно време до по-ниска стойност ще накара системата да излезе от тези процеси по-рано. Докато принудителните процеси да напуснат, не е най-добрата практика, системата вече се подготвя да направи това по време на изключването. Отново, OS X позволява на процеса само 20-секунден прозорец за изход, а след това системата ще убие процеса силно.

Фоновите услуги, които изглеждат често срещани виновници в такива прекъсвания, са тези, които обработват междупроцесната комуникация, управлението на автентичността и активността на дисковите и мрежовите ресурси. В OS X те включват следното:

  • AppleEvents - Това позволява на процесите да комуникират и да управляват помежду си (и е основа за AppleScript). Той може да прекъсне прекъсванията в комуникацията между процесите (например, ако един процес е принуден да излезе, когато се управляват събитията).
  • securityd - Това управлява достъпа до ключовете и други разрешения за сигурност и може да изчака, ако изчака за взаимодействие с потребителя за някаква заявка за удостоверяване.
  • mDNSResponder - Управлява многоадресни DNS действия, включително автоматично откриване на мрежови сървъри и услуги. Това може да изтече от проблеми с конфигурацията на локалната мрежа.
  • diskarbitrationd - Диск арбитърът следи монтажа и достъпността на локалните файлови системи и може да изтече от грешка в използваните дискове, или ако устройството премине офлайн или в режим на заспиване и отнема известно време да се събуди.
  • Apple ID удостоверяване - управлява проверката на вашия Apple ID за различни услуги; може да изтече времето от лошия достъп до мрежата или липсата на отговор от сървърите на Apple.

Управлението на таймаутите на тези процеси се извършва от процеса на стартиране на системния стартер, който държи 20-секундното време по подразбиране за процесите. Като инструктирате стартера да съкрати този период дори наполовина, можете значително да ускорите спирането, което изостава поради тези процеси.

За да промените времето за изчакване, ще трябва да промените файловете на демона за стартиране, които системата използва за тези услуги, така че първо трябва да сте сигурни, че имате резервно копие на системата и след това изпълнете следните команди, които можете да копирате и поставите (всяка команда е два реда) в помощната програма на терминала OS X (в папката Приложения> Помощни програми):

sudo по подразбиране пиша / System / Library / LaunchDaemons / c \ t

om.apple.coreservices.appleevents ExitTimeOut -int 5

sudo по подразбиране пиша / System / Library / LaunchDaemons / c \ t

om.apple.securityd ExitTimeOut -int 5

sudo по подразбиране пиша / System / Library / LaunchDaemons / c \ t

om.apple.mDNSResponder ExitTimeOut -int 5

sudo по подразбиране пиша / System / Library / LaunchDaemons / c \ t

om.apple.diskarbitrationd ExitTimeOut -int 5

sdo по подразбиране запис / System / Library / LaunchAgents / com. \ t

apple.coreservices.appleid.authentication ExitTimeOut -int 5

В тези команди, както е написано по-горе, стойността на таймаут е настроена на "5", което означава, че системата ще изчака 5 секунди, преди да убие процес по време на изключване, но можете да промените това на всяка стойност по-голяма от нула (стойност нула забранява време, така че ще изчака неопределено време). Имайте предвид, че това са команди "sudo", което означава, че когато стартирате първата, ще трябва да предоставите паролата на администратора (която няма да се покаже в терминала, когато бъдете подканени), но след това няма да е необходимо да предоставя паролата за следващите команди,

Поставете двете линии на всяка команда, дадени по-горе в терминала, като промените стойността от 5 на друг номер, ако желаете (можете да изпълните командите отново по всяко време с различни стойности). Когато приключите, рестартирайте компютъра си и след това проверете дали това подобрява времето за изключване.

За да отмените тези действия, можете да изпълните командите отново, но със стойност 20, или да изпълните следните команди, за да премахнете записа за настройки "ExitTimeOut", който по подразбиране не е включен в тези стартиращи демон и скриптове на агенти:

sudo по подразбиране изтрива / System / Library / LaunchDaemons / c \ t

om.apple.coreservices.appleevents ExitTimeOut

sudo по подразбиране изтрива / System / Library / LaunchDaemons / c \ t

om.apple.securityd ExitTimeOut

sudo по подразбиране изтрива / System / Library / LaunchDaemons / c \ t

om.apple.mDNSResponder ExitTimeOut

sudo по подразбиране изтрива / System / Library / LaunchDaemons / c \ t

om.apple.diskarbitrationd ExitTimeOut

sudo по подразбиране изтрива / System / Library / LaunchAgents / com

.apple.coreservices.appleid.authentication ExitTimeOut


 

Оставете Коментар