एक स्क्रिप्ट उपयोगकर्ता के निष्क्रिय समय का पता कैसे लगा सकती है?


33

मैं जांच करना चाहता हूं, एक बैश स्क्रिप्ट के अंदर, एक्स सत्र का उपयोगकर्ता कब तक निष्क्रिय रहा है।

उपयोगकर्ता को स्वयं बैश का उपयोग करने की आवश्यकता नहीं है, लेकिन सिर्फ एक्स। यदि उपयोगकर्ता सिर्फ माउस ले जाता है, उदाहरण के लिए, एक अच्छा जवाब "0 सेकंड के लिए निष्क्रिय" होगा। यदि उसने 5 मिनट में कंप्यूटर को नहीं छुआ है, तो एक अच्छा उत्तर "300 सेकंड के लिए निष्क्रिय" होगा

सीधे एक्सॉटॉलॉक का उपयोग न करने का कारण कुछ जटिल व्यवहार को लागू करने में सक्षम होना है। उदाहरण के लिए, यदि उपयोगकर्ता 10 मिनट के लिए निष्क्रिय है, तो उसे निलंबित करने का प्रयास करें, यदि वह अधिक 5 मिनट के लिए निष्क्रिय है, तो शटऑफ (मुझे पता है कि यह अजीब लगता है, लेकिन निलंबन हमेशा यहां काम नहीं करता है ...)

जवाबों:


38

बस इसे करने का एक सरल तरीका मिला।

Xprintidle नामक एक प्रोग्राम है जो ट्रिक करता है

निष्क्रिय समय (मिलीसेकंड में) प्राप्त करना उतना ही सरल है जितना कि

xprintidle

और स्थापित करने के लिए

apt-get install xprintidle

Sysadmins के लिए, यह दूरस्थ रूप से भी काम करता है

एक सत्र सत्र से :

export DISPLAY=:0 && sudo -u john xprintidle

जहां जॉन रिमोट मशीन पर एक्स सत्र में लॉग इन किया गया उपयोगकर्ता है।


4

यहाँ से उत्तर दें :

मारपीट में

w | tr -s " " | cut -d" " -f1,5 | tail -n+3

आपको प्रत्येक शेल के लिए एक यूज़रनेम / आइडलटाइम जोड़ी देता है। तो मूल रूप से आप कमांड के माध्यम से निष्क्रिय जानकारी प्राप्त कर सकते हैंw


यह एक्स के साथ बातचीत की गणना कैसे करता है जो एक टर्मिनल के माध्यम से नहीं हैं? जैसे, एक फ़ायरफ़ॉक्स के अंदर एक माउस आंदोलन कहें। यदि उपयोगकर्ता माउस
घुमा

@josinalvo wसिर्फ आपको उस विशेष टर्मिनल में बेकार समय देता है जो मुझे लगता है।
दान

3
वह निष्क्रिय समय वास्तव में चलने का समय है, प्रक्रिया का अपटाइम (डब्ल्यू आउटपुट का डब्ल्यूएचटी कॉलम)। इसलिए यह इस बारे में कोई जानकारी नहीं देता है कि उपयोगकर्ता अपने एक्स सत्र में कितने समय से निष्क्रिय है।
रोज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.