Pospešite postopek zaustavitve v OS X

Ko izklopite računalnik Mac, bo OS X poskušal čisto zapreti programe in storitve v ozadju; vendar lahko v nekaterih okoliščinah to traja izjemno dolgo, tako da sistem čaka nekaj minut, preden se končno ugasne. Včasih je to sistem, ki čaka na interakcijo, kot na primer shranjevanje dokumenta, vendar je včasih to, ker so se storitve v ozadju prenehale odzivati ​​in sistem čaka na vnaprej določeno količino časa, preden jih prisili, da zaprejo.

Na splošno bi OS X potreboval le nekaj sekund, da se izklopi, tako da, če vaš sistem dosledno vzame veliko časa, to nakazuje na problem, ki ga je treba obravnavati. Včasih je to lahko problematična periferna naprava ali dva, ali pa je lahko posledica napačne konfiguracije vašega sistema. V teh primerih morate poskusiti nekatere osnovne postopke za odpravljanje težav, da boste lažje prepoznali in odpravili težavo.

Če pa boste redno naleteli na dolgotrajne zaustavitve, vendar v bolj naključnih intervalih, so lahko situacijski in lahko povzroči, da sistem na nekaterih procesih v ozadju čakajo na izhod.

Po privzetku bo sistem čakal, da se procesi v ozadju končajo sami, če pa ne, bo takšne procese po 20 sekundah poslali, in če bodo ti postopki potekali v različnih intervalih, lahko to podaljša zaustavitev na število minut.

Zato za nekatere procese v ozadju, ki se nagibajo k prekinitvi več kot drugi, preprosto spreminjanje tega privzetega 20-sekundnega časa na nižjo vrednost povzroči, da sistem prej zapre te procese. Medtem ko siljenje procesov ni več najboljša praksa, se sistem že pripravlja, da to stori med zaustavitvijo. Tudi OS X omogoča procesu 20-sekundno okno za izhod v sistem, nato pa bo sistem nasilno ubil proces.

Osnovne storitve, ki se zdijo skupni krivec v takih časovnih omejitvah, so tiste, ki obravnavajo medprocesno komunikacijo, upravljanje pristnosti in dejavnost diskovnih in omrežnih virov. V OS X vključujejo naslednje:

  • AppleEvents - To omogoča procesom, da komunicirajo in povežejo drug drugega (in je osnova za AppleScript). Prekinitve v medprocesni komunikaciji se lahko iztečejo (na primer, če je eden proces prisiljen zapreti, ko se dogodki upravljajo).
  • securityd - s tem upravljate dostop do ključev in drugih varnostnih pooblastil, lahko pa čakate na interakcijo uporabnika za nekatere zahteve za preverjanje pristnosti.
  • mDNSResponder - Upravljanje večpredstavnih DNS dejanj, vključno z avtomatskim odkrivanjem omrežnih strežnikov in storitev. To lahko izteče iz težav z konfiguracijo lokalnega omrežja.
  • diskarbitrationd - Disk arbitrator nadzira montažo in dostopnost lokalnih datotečnih sistemov in lahko izteče iz napake v pogonih, ki se uporabljajo, ali če pogon ne deluje ali se preklopi v način mirovanja in traja nekaj časa, da se prebudi.
  • Preverjanje pristnosti Apple ID - upravlja preverjanje vašega Apple ID-ja za različne storitve; lahko prenehajo delovati zaradi slabega dostopa do omrežja ali pomanjkanja odziva s strežnikov Apple

Upravljanje časovnih omejitev teh procesov se izvede s procesom za zagon sistema launchd, ki ima 20 sekundni privzeti časovni potek za procese. Z nalaganjem zaganjalniku, da skrajša to obdobje celo za polovico, lahko bistveno pospešite zaustavitve, ki zaostajajo zaradi teh procesov.

Če želite spremeniti časovne omejitve, boste morali spremeniti datoteke demona za zagon, ki jih sistem uporablja za te storitve, zato najprej preverite, ali imate varnostno kopijo sistema, nato pa zaženite te ukaze, ki jih lahko kopirate in prilepite (vsak ukaz je dve vrstici) v pripomoček Terminal OS X (v mapi Aplikacije> Pripomočki):

sudo defaults write / Sistem / Knjižnica / LaunchDaemons / c \ t

om.apple.coreservices.appleevents ExitTimeOut -int 5

sudo defaults write / Sistem / Knjižnica / LaunchDaemons / c \ t

om.apple.securityd ExitTimeOut -int 5

sudo defaults write / Sistem / Knjižnica / LaunchDaemons / c \ t

om.apple.mDNSResponder ExitTimeOut -int 5

sudo defaults write / Sistem / Knjižnica / LaunchDaemons / c \ t

om.apple.diskarbitrationd ExitTimeOut -int 5

sudo defaults napisati / System / Library / LaunchAgents / com. \ t

apple.coreservices.appleid.authentication ExitTimeOut -int 5

V teh ukazih, kot so napisani zgoraj, je vrednost časovne omejitve nastavljena na "5", kar pomeni, da bo sistem med zaustavitvijo čakal 5 sekund, preden bo uničil postopek, vendar ga lahko spremenite v katerokoli celo vrednost, večjo od nič (vrednost nič onemogoči časovne omejitve, tako da bi čakala za nedoločen čas). Upoštevajte, da so to ukazi "sudo", kar pomeni, da ko zaženete prvi, boste morali podati skrbniško geslo (ki se ne bo prikazalo na terminalu, ko boste pozvani), potem pa vam ne bo treba podati gesla za naslednje ukaze. .

Prilepite obe vrstici vsakega zgornjega ukaza v terminal, tako da spremenite vrednost 5 na drugo številko, če želite (lahko ukaze znova zaženete kadarkoli z različnimi vrednostmi). Ko končate, znova zaženite računalnik in nato preverite, ali to izboljšuje čas zaustavitve.

Če želite razveljaviti ta dejanja, lahko znova zaženete ukaze, vendar z vrednostjo 20, ali pa zaženete naslednje ukaze, da odstranite vnos nastavitev "ExitTimeOut", ki privzeto ni vključen v te demone za zagon in skripte agentov

sudo defaults izbrisati / System / Library / LaunchDaemons / c \ t

om.apple.coreservices.appleevents ExitTimeOut

sudo defaults izbrisati / System / Library / LaunchDaemons / c \ t

om.apple.securityd ExitTimeOut

sudo defaults izbrisati / System / Library / LaunchDaemons / c \ t

om.apple.mDNSResponder ExitTimeOut

sudo defaults izbrisati / System / Library / LaunchDaemons / c \ t

om.apple.diskarbitrationd ExitTimeOut

sudo defaults izbrisati / System / Library / LaunchAgents / com \ t

.apple.coreservices.appleid.authentication ExitTimeOut


 

Pustite Komentar