Accélérer le processus d'arrêt sous OS X

Lorsque vous éteignez votre Mac, OS X tente de quitter proprement les programmes et les services d'arrière-plan. Toutefois, dans certaines circonstances, cela peut prendre un temps exceptionnellement long, de sorte que le système attend quelques minutes avant de s'arrêter définitivement. Parfois, le système attend une interaction telle que l'enregistrement d'un document, mais d'autres fois, c'est parce que les services d'arrière-plan ont cessé de répondre et que le système attend un laps de temps prédéterminé avant de les forcer à quitter.

Généralement, OS X ne devrait prendre que quelques secondes pour s’éteindre. Par conséquent, si votre système prend constamment beaucoup de temps, cela laisse à penser que le problème doit être résolu. Parfois, cela peut simplement être un périphérique problématique ou deux, ou cela peut provenir d’une configuration défectueuse de votre système. Dans ces cas, vous devriez essayer quelques procédures de dépannage de base pour vous aider à identifier et à résoudre le problème.

Toutefois, si vous rencontrez de longs arrêts régulièrement, mais à des intervalles plus aléatoires, ils peuvent alors être liés à une situation et être provoqués par le système qui attend que certains processus en arrière-plan se terminent.

Par défaut, le système attendra que les processus en arrière-plan se terminent d'eux-mêmes, mais sinon, il enverra un signal de suppression à ces processus au bout de 20 secondes. Si ces processus arrivent à expiration à des intervalles différents, cela peut prolonger l'arrêt du système. nombre de minutes.

Par conséquent, pour certains processus d'arrière-plan qui ont tendance à raccrocher plus que d'autres, le fait de changer cette valeur par défaut de 20 secondes pour une valeur inférieure entraînera le système à quitter ces processus plus tôt. Forcer l'arrêt des processus n'est pas une bonne pratique, mais le système est déjà prêt à le faire pendant l'arrêt. Encore une fois, OS X ne permet au processus qu'une fenêtre de 20 secondes pour sortir, puis le système va tuer le processus avec force.

Les services d'arrière-plan qui semblent être les coupables courants dans ces délais sont ceux qui gèrent la communication interprocessus, la gestion de l'authentification et l'activité des ressources réseau et sur disque. Sous OS X, ces fonctions sont les suivantes:

  • AppleEvents - Cela permet aux processus de communiquer et de se commander (et constitue la base d'AppleScript). Il est possible que le délai d'expiration des interruptions dans la communication entre processus soit dépassé (par exemple, si un processus est forcé de quitter lorsque des événements sont gérés).
  • securityd - Ceci gère l'accès aux trousseaux de clés et autres autorisations de sécurité et peut expirer si l'attente de l'interaction de l'utilisateur pour une demande d'authentification est en cours.
  • mDNSResponder - Gère les actions DNS multidiffusion, y compris la découverte automatique des serveurs et des services réseau. Cela peut expirer après des problèmes avec la configuration du réseau local.
  • diskarbitrationd - L'arbitre de disque surveille le montage et l'accessibilité des systèmes de fichiers locaux et peut arriver à expiration après une défaillance des lecteurs utilisés, ou si un lecteur est mis hors ligne ou en mode veille et met un certain temps à se réactiver.
  • Authentification Apple ID - gère la vérification de votre identifiant Apple pour divers services; délai d’expiration dû à un accès réseau insuffisant ou à un manque de réponse des serveurs Apple.

La gestion des délais d'attente de ces processus est effectuée par le processus de lancement du système, launchd, qui conserve le délai d'attente par défaut de 20 secondes pour les processus. En demandant au lanceur de réduire cette période de moitié, vous pouvez accélérer considérablement les arrêts retardés à cause de ces processus.

Pour modifier les délais, vous devez modifier les fichiers du démon de lancement utilisés par le système pour ces services. Assurez-vous d’abord de disposer d’une sauvegarde de votre système, puis exécutez les commandes suivantes, que vous pouvez copier et coller (chaque commande est enregistrée). deux lignes) dans l’utilitaire Terminal OS X (dans le dossier Applications> Utilitaires):

Les valeurs par défaut sudo écrivent / System / Library / LaunchDaemons / c \

om.apple.coreservices.appleevents ExitTimeOut -int 5

Les valeurs par défaut sudo écrivent / System / Library / LaunchDaemons / c \

om.apple.securityd ExitTimeOut -int 5

Les valeurs par défaut sudo écrivent / System / Library / LaunchDaemons / c \

om.apple.mDNSResponder ExitTimeOut -int 5

Les valeurs par défaut sudo écrivent / System / Library / LaunchDaemons / c \

om.apple.diskarbitrationd ExitTimeOut -int 5

Les valeurs par défaut sudo écrivent / System / Library / LaunchAgents / com. \

apple.coreservices.appleid.authentication ExitTimeOut -int 5

Dans ces commandes, comme indiqué ci-dessus, la valeur du délai d'attente est définie sur "5", ce qui signifie que le système attend 5 secondes avant de tuer un processus lors de l'arrêt, mais vous pouvez le remplacer par toute valeur entière supérieure à zéro (une valeur égale à zéro désactive le processus. délai d'attente, il attendrait donc indéfiniment). Notez qu'il s'agit de commandes "sudo", ce qui signifie que lorsque vous exécuterez la première, vous devrez fournir votre mot de passe administrateur (qui n'apparaîtra pas dans le terminal lorsque vous y serez invité), mais n'aura pas besoin de fournir le mot de passe pour les commandes suivantes. .

Collez les deux lignes de chaque commande donnée ci-dessus dans le Terminal, en modifiant la valeur de 5 en un autre nombre si vous le souhaitez (vous pouvez exécuter les commandes à tout moment avec des valeurs différentes). Lorsque vous avez terminé, redémarrez votre ordinateur, puis voyez si cela améliore ou non vos temps d'arrêt.

Pour annuler ces actions, vous pouvez exécuter les commandes à nouveau, mais avec la valeur 20, ou les commandes suivantes pour supprimer l'entrée de paramètres "ExitTimeOut", qui n'est par défaut pas incluse dans ces scripts de démon de lancement et d'agent:

sudo defaults delete / System / Library / LaunchDaemons / c \

om.apple.coreservices.appleevents ExitTimeOut

sudo defaults delete / System / Library / LaunchDaemons / c \

om.apple.securityd ExitTimeOut

sudo defaults delete / System / Library / LaunchDaemons / c \

om.apple.mDNSResponder ExitTimeOut

sudo defaults delete / System / Library / LaunchDaemons / c \

om.apple.diskarbitrationd ExitTimeOut

sudo defaults delete / System / Library / LaunchAgents / com \

.apple.coreservices.appleid.authentication ExitTimeOut


 

Laissez Vos Commentaires