Επιταχύνετε τη διαδικασία τερματισμού λειτουργίας στο OS X

Όταν τερματίζετε το Mac, το OS X θα προσπαθήσει να κλείσει καθαρά τα προγράμματα και τις υπηρεσίες φόντου. Ωστόσο, σε ορισμένες περιπτώσεις αυτό μπορεί να διαρκέσει εξαιρετικά μεγάλο χρονικό διάστημα, έτσι ώστε το σύστημα να περιμένει για λεπτά πριν κλείσει τελικά. Μερικές φορές αυτό είναι το σύστημα που περιμένει μια αλληλεπίδραση, όπως την αποθήκευση ενός εγγράφου, αλλά άλλες φορές συμβαίνει επειδή οι υπηρεσίες φόντου έχουν σταματήσει να ανταποκρίνονται και το σύστημα περιμένει ένα προκαθορισμένο χρονικό διάστημα πριν αναγκάσει τους να σταματήσουν.

Γενικά, το OS X θα πρέπει να διαρκέσει μόνο μερικά δευτερόλεπτα για να τερματίσει τη λειτουργία του, επομένως εάν το σύστημά σας παίρνει σταθερά πολύ χρόνο, αυτό υποδηλώνει ένα πρόβλημα που πρέπει να αντιμετωπιστεί. Μερικές φορές αυτό μπορεί απλά να είναι μια προβληματική περιφερειακή συσκευή ή δύο, ή θα μπορούσε να είναι από κάποια ελαττωματική διαμόρφωση του συστήματός σας. Σε αυτές τις περιπτώσεις, πρέπει να επιχειρήσετε μερικές βασικές διαδικασίες αντιμετώπισης προβλημάτων για να εντοπίσετε και να διορθώσετε το πρόβλημα.

Ωστόσο, εάν συναντάτε μακρά τερματισμούς τακτικά αλλά σε πιο τυχαία χρονικά διαστήματα, τότε μπορεί να είναι καταστάσεις και μπορεί να προκληθούν από το σύστημα που περιμένει να βγει από ορισμένες διαδικασίες φόντου.

Από προεπιλογή, το σύστημα θα περιμένει τις διεργασίες υποβάθρου να τερματίζουν μόνοι τους, αλλά αν όχι τότε θα στέλνει τέτοιες διαδικασίες ένα σήμα σκοτώματος μετά από 20 δευτερόλεπτα και αν αυτές οι διαδικασίες χρονομετρηθούν σε διαφορετικά χρονικά διαστήματα, αυτό μπορεί να επεκτείνει μια διακοπή σε ένα αριθμό λεπτών.

Επομένως, για ορισμένες διαδικασίες φόντου που τείνουν να κλείνουν περισσότερο από άλλες, απλώς η αλλαγή αυτής της προεπιλεγμένης περιόδου 20 δευτερολέπτων σε χαμηλότερη τιμή θα προκαλέσει την έξοδο του συστήματος από αυτές τις διαδικασίες νωρίτερα. Ενώ η εξαναγκασμός των διαδικασιών να σταματήσουν δεν είναι η βέλτιστη πρακτική, το σύστημα είναι ήδη προετοιμασμένο για να το κάνει αυτό κατά τη διάρκεια του τερματισμού λειτουργίας. Και πάλι, το OS X επιτρέπει μόνο στη διαδικασία να βγει ένα παράθυρο 20 δευτερολέπτων, και στη συνέχεια το σύστημα θα σκοτώσει τη διαδικασία έντονα.

Οι υπηρεσίες παρασκηνίου που φαίνεται να είναι κοινές αιτίες σε τέτοιες προθεσμίες είναι εκείνες που χειρίζονται επικοινωνία μεταξύ διαδικασιών, διαχείριση ταυτότητας και δραστηριότητα δίσκου και δικτύου. Στο OS X περιλαμβάνουν τα εξής:

  • AppleEvents - Αυτό επιτρέπει στις διαδικασίες να επικοινωνούν και να διοικούν το ένα το άλλο (και είναι η βάση για το AppleScript). Μπορεί να χρονοτριβεί από τις διακοπές της επικοινωνίας μεταξύ διαδικασιών (για παράδειγμα, εάν μια διαδικασία αναγκάζεται να τερματίσει τη λειτουργία της κατά τη διαχείριση των συμβάντων).
  • securityd - Διαχειρίζεται την πρόσβαση σε μπρελόκ και άλλες εξουσιοδοτήσεις ασφαλείας και ενδέχεται να λήξει χρονικό περιθώριο εάν περιμένει αλληλεπίδραση χρήστη για κάποιο αίτημα ελέγχου ταυτότητας.
  • mDNSResponder - Διαχειρίζεται τις ενέργειες DNS πολλαπλής διανομής, συμπεριλαμβανομένης της αυτόματης ανακάλυψης εξυπηρετητών δικτύου και υπηρεσιών. Αυτό μπορεί να διαρκέσει από προβλήματα με τη διαμόρφωση τοπικού δικτύου.
  • Diskarbitrationd - Ο διαιτητής του δίσκου παρακολουθεί τη συναρμολόγηση και την προσβασιμότητα των τοπικών συστημάτων αρχείων και μπορεί να χάσει χρόνο από ένα σφάλμα στις μονάδες που χρησιμοποιούνται ή εάν μια μονάδα βγαίνει εκτός λειτουργίας ή σε κατάσταση αναστολής και χρειάζεται κάποιο χρονικό διάστημα για να ξυπνήσει.
  • Έλεγχος ταυτότητας Apple ID - διαχειρίζεται την επαλήθευση του αναγνωριστικού της Apple για διάφορες υπηρεσίες. μπορεί να χάσει χρόνο από την κακή πρόσβαση στο δίκτυο ή την έλλειψη ανταπόκρισης από τους διακομιστές της Apple.

Η διαχείριση των χρονικών ορίων αυτών των διεργασιών γίνεται με τη διαδικασία εκκίνησης του συστήματος εκκίνησης, η οποία διατηρεί το προεπιλεγμένο χρονικό όριο 20 δευτερολέπτων για τις διαδικασίες. Δίνοντας εντολή στον εκτοξευτή να συντομεύσει αυτή την περίοδο ακόμη και κατά το ήμισυ, μπορείτε να επιταχύνετε σημαντικά τις διακοπές λειτουργίας που καθυστερούν λόγω αυτών των διαδικασιών.

Για να αλλάξετε τα χρονικά όρια, θα πρέπει να τροποποιήσετε τα αρχεία daemon που χρησιμοποιεί το σύστημα για αυτές τις υπηρεσίες, οπότε πρώτα βεβαιωθείτε ότι έχετε δημιουργήσει αντίγραφο ασφαλείας του συστήματός σας και στη συνέχεια εκτελέστε τις ακόλουθες εντολές, τις οποίες μπορείτε να αντιγράψετε και να επικολλήσετε δύο γραμμές) στο βοηθητικό πρόγραμμα Terminal OS X (στο φάκελο Applications> Utilities):

sudo προεπιλογές γράψτε / System / Library / LaunchDaemons / c \

Εφαρμογή om.apple.coreservices.appleevents ExitTimeOut -int 5

sudo προεπιλογές γράψτε / System / Library / LaunchDaemons / c \

om.apple.securityd ExitTimeOut -int 5

sudo προεπιλογές γράψτε / System / Library / LaunchDaemons / c \

om.apple.mDNSResponder ExitTimeOut -int 5

sudo προεπιλογές γράψτε / System / Library / LaunchDaemons / c \

Εκτελέστε ExitTimeOut -int 5

sudo προεπιλογές γράψτε / System / Library / LaunchAgents / com. \

apple.coreservices.appleid.authentication ExitTimeOut -int 5

Σε αυτές τις εντολές όπως γράφηκε παραπάνω, η τιμή χρονικού ορίου έχει οριστεί σε "5", πράγμα που σημαίνει ότι το σύστημα θα περιμένει 5 δευτερόλεπτα πριν σκοτώσει μια διαδικασία κατά τη διάρκεια του τερματισμού, αλλά μπορείτε να το αλλάξετε σε οποιαδήποτε ακέραια τιμή μεγαλύτερη από μηδέν timeout, οπότε θα περίμενε επ 'αόριστον). Σημειώστε ότι αυτές είναι εντολές "sudo", που σημαίνει ότι όταν εκτελείτε την πρώτη θα πρέπει να δώσετε τον κωδικό πρόσβασης διαχειριστή (ο οποίος δεν θα εμφανιστεί στο Terminal όταν σας ζητηθεί), αλλά στη συνέχεια δε θα χρειαστεί να δώσετε τον κωδικό πρόσβασης για τις επόμενες εντολές .

Επικολλήστε και τις δύο γραμμές κάθε εντολής που δίνεται παραπάνω στο τερματικό, αλλάζοντας την τιμή 5 σε άλλο αριθμό, εάν το επιθυμείτε (μπορείτε να εκτελέσετε τις εντολές ξανά ανά πάσα στιγμή με διαφορετικές τιμές). Όταν τελειώσετε, κάντε επανεκκίνηση του υπολογιστή σας και, στη συνέχεια, δείτε αν βελτιώνει ή όχι τους χρόνους τερματισμού λειτουργίας.

Για να αναιρέσετε αυτές τις ενέργειες, μπορείτε να εκτελέσετε ξανά τις εντολές αλλά με μια τιμή 20 ή μπορείτε να εκτελέσετε τις ακόλουθες εντολές για να καταργήσετε την καταχώρηση ρυθμίσεων "ExitTimeOut", η οποία, εξ ορισμού, δεν περιλαμβάνεται σε αυτές τις δέσμες ενεργειών δαίμονα και παράγοντα εκκίνησης:

sudo προεπιλογή διαγραφή / System / Library / LaunchDaemons / c \

om.apple.coreservices.appleevents ExitTimeOut

sudo προεπιλογή διαγραφή / System / Library / LaunchDaemons / c \

om.apple.securityd ExitTimeOut

sudo προεπιλογή διαγραφή / System / Library / LaunchDaemons / c \

om.apple.mDNSResponder ExitTimeOut

sudo προεπιλογή διαγραφή / System / Library / LaunchDaemons / c \

om.apple.diskarbitrationd ExitTimeOut

sudo προεπιλογή διαγραφή / System / Library / LaunchAgents / com \

.apple.coreservices.appleid.authentication ExitTimeOut


 

Αφήστε Το Σχόλιό Σας