इसका एक आसान समाधान एक स्व-पाइप का उपयोग करना है। एक पाइप खोलें और समय-समय पर टाइमस्टैम्प लिखें। टाइमस्टैम्प पढ़ने और उन्हें वर्तमान समय की तुलना करने के लिए इस पाइप पर select
। जब कोई बड़ा अंतर होता है, तो इसका मतलब है कि आप सिस्टम निलंबन या हाइबरनेट मोड से जाग गए हैं।
दूसरी तरफ के रूप में, ढक्कन बंद होने पर अधिक समय नहीं होता है और यह स्विच फ्लिप करता है।
यदि आपको वास्तव में निलंबन पर कार्य करने की आवश्यकता है, तो आपको pm-utils में https://help.ubuntu.com/community/PowerManagement/ReducedPower जैसे पावरव्यू हुक सेट करने की आवश्यकता होगी। यह रूप में सरल रूप में
kill -1 `cat mypid` ; sleep 1
आपका प्रक्रिया होगा तो जाल SIGHUP हो सकता है और क्या निलंबन के लिए तैयार करने के लिए किया जाना चाहिए कर सकता है। नींद सिग्नल पर प्रतिक्रिया करने के लिए आपके कार्यक्रम के लिए पर्याप्त प्रक्रिया को देरी करती है।
स्रोत
2011-08-04 05:42:45
यह कुछ http://www.mjmwired.net/kernel/Documentation/power/freezing-of-tasks.txt – Kristofer
@ क्रिस्टोफर, सुराग के लिए धन्यवाद मुझे अधिक उपयुक्त पाया गया है: http: // www। mjmwired.net/kernel/Documentation/power/notifiers.txt लेकिन ऐसा लगता है कि यह केवल कर्नेल मोड में संभव है लेकिन मुझे किसी भी कर्नेल मॉड्यूल को लिखने के बिना उपयोगकर्ता स्थान में अधिसूचित होने की आवश्यकता है – ixSci