PC Κλείσε! Μα το Δία!

Όπως έχω ήδη πει, έχω δύο PCs. Ένα desktop για pure-gaming-experience και ένα laptop για όλα τα υπόλοιπα. Τυχαίνει λοιπόν εκεί που γράφω την 1000στή γραμμή στον κώδικά μου, να θέλω να μπώ για ένα γρήγορο deathmatchάκι για να ξελαμπικάρω. Οπότε πατώ Sleep στο laptop και ανοίγω το desktop. Έλα που όμως δεν θέλει να πάει για ύπνο. Γι’ αυτό του βρήκα το κατάλληλο υπνωτικό.


Τι προκαλεί τις “αϋπνίες”

Τα Windows (δεν ξέρω από πότε και μετά, σίγουρα Windows 7+) έχουν ένα component ονόματι Wake Timer το οποίο επιτρέπει στους developers να “αφυπνίζουν” τον υπολογιστή για διάφορα events.

Για να καταλάβεις τι εννοώ με το event, ας πάρουμε ένα built-in wake timer των Windows που αφορά τα περιφερειακά.

Όταν πατάς Sleep δηλαδή, αν κουνήσεις το ποντίκι ή πατήσεις κάποιο πλήκτρο στο πληκτρολόγιο, το PC ανοίγει. Το κούνημα του ποντικιού και το πάτημα του πλήκτρου είναι events, γεγονότα δηλαδή αν θέλουμε να τα περιγράψουμε στη μητρική μου γλώσσα.

Wake Timers μπορεί να υπάρχουν για τα περιφερειακά, αλλά δίνεται η δυνατότητα και στους developers μιας εφαρμογής να δημιουργήσουν wake timer γι’ αυτή.

Το δικό μου πρόβλημα

Προσωπικά δεν είχα ορίσει κάποιο Wake Timer πέρα των default για περιφερειακά (ή τουλάχιστον έτσι νόμιζα), αλλά όταν έκανα Sleep ή Hibernate το laptop, μετά από λίγο “ξυπνούσε”.

Μετά από ψάξιμο κατέληξα στο ότι κάποιο Wake Timer έκανε την δουλειά και υποπτευόμουν το πληκτρολόγιο, αλλά εν τέλει έφταιγε το Torrent-Time.

Παρακάτω θα δούμε τι βήματα έκανα και βρήκα τι φταίει.


Εύρεση του Wake Timer που προκαλεί την αφύπνιση

Για να εξαλείψουμε οποιεσδήποτε “παρεμβολές”, επανεκκίνησε το PC σου και περίμενε να φορτώσουν όλες οι διεργασίες και τα προγράμματα.

Αφού γίνει αυτό, πάτα Sleep (ή Hibernate), άφησε το PC να κλείσει και περίμενε να ξανανοίξει μόνο του.

Για καλό και για κακό απενεργοποίησε το ποντίκι ή το πληκτρολόγιό σου αν γίνεται, αλλιώς βεβαιώσου ότι το ποντίκι θα μείνει εντελώς ακίνητο κατά τη διάρκεια της αναμονής και ότι δεν θα πατηθεί κάποιο πλήκτρο στο πληκτρολόγιο.

Όταν ανοίξει το PC άνοιξε ένα Command Prompt (απλά αναζήτησε cmd ή πήγαινε στο Start -> All Programs -> Accessories -> Command Prompt) και βάλε την εντολή:

powercfg -lastwake

Κανονικά θα πρέπει να εμφανιστεί κάτι σαν το παρακάτω:

Αν δεν δεις κάποιον owner μπορείς να κάνεις το επόμενο βήμα: “Αν όλα πάνε στραβά”, που απενεργοποιεί τους Wake Timers εντελώς.

Όπως φαίνεται στο screenshot, το πρόβλημα οφειλόταν στο Torrent-Time το οποίο απεγκατέστησα γιατί δεν το χρησιμοποιούσα πλέον.

Αν χρειάζεσαι το πρόγραμμα τότε άνοιξε το Task Scheduler των Windows (κάνε search “Task Scheduler” ή πήγαινε: Start -> Control Panel -> System and Security -> Administrative Tools -> Task Scheduler), πήγαινε στην εγγραφή που σου δημιουργεί το πρόβλημα, επέλεξε το Task και από το μενού δεξιά πάτα Disable.

Ένα ενδεικτικό Task στον Task Scheduler των Windows 7

Κάνε επανεκκίνηση και δοκίμασε πάλι το Sleep.

Κανονικά δεν θα πρέπει να αφυπνιστεί αυτόματα το PC. Αν το κάνει, ξαναδοκίμασε, ή κάνε το επόμενο βήμα που απενεργοποιεί τους Wake Timers εντελώς.


Αν όλα πάνε στραβά

Αν δεν έχεις την υπομονή να ψάξεις ένα-ένα τους Wake Timers που σου κάνουν την “ζημιά”, υπάρχει και ο “butcher” τρόπος να κάνεις τη δουλειά σου και δουλεύει 100% σίγουρα.

Άνοιξε το Power Options αναζητώντας το στο Start Menu ή πηγαίνοντας στο Start -> Control Panel -> System and Security -> Power Options.

Από το παρακάτω παράθυρο που θα σου εμφανιστεί επέλεξε το πλάνο που είναι ενεργό (τα πλάνα του screenshot μπορεί να διαφέρουν από τα δικά σου, εσύ απλά επιλέγεις αυτό που έχεις ενεργό):

Το παράθυρο του Power Options. Πάτα Change Plan Settings στο plan που έχεις ενεργό.
Στη συνέχεια πάτα Change advanced power settings
Στο παράθυρο που ανοίγει στην καρτέλα Advanced Settings βρες το Sleep > Allow wake timers και άλλαξε τα πεδία σε Disabled
Αποθήκευσε τις αλλαγές και αυτό ήταν! Συγχαρητήρια, το PC σου θα κοιμάται σαν πουλάκι.