কোনও স্ক্রিপ্ট কীভাবে ব্যবহারকারীর অলস সময়টি সনাক্ত করতে পারে?


33

আমি ব্যাশ স্ক্রিপ্টের ভিতরে, এক্স সেশনের ব্যবহারকারী কতক্ষণ নিষ্ক্রিয় ছিল তা পরীক্ষা করতে চাই।

ব্যবহারকারী নিজে ব্যাশ ব্যবহার করতে হবে না, তবে কেবল এক্স the ব্যবহারকারী যদি কেবলমাত্র মাউসটি সরান, উদাহরণস্বরূপ, একটি ভাল উত্তর হবে "0 সেকেন্ডের জন্য অলস"। যদি তিনি 5 মিনিটের মধ্যে কম্পিউটারটি স্পর্শ না করেন, তবে একটি ভাল উত্তর হবে "300 সেকেন্ডের জন্য অলস"

সরাসরি জাউটলক ব্যবহার না করার কারণটি হল কিছু জটিল আচরণ বাস্তবায়িত করতে সক্ষম। উদাহরণস্বরূপ, যদি ব্যবহারকারী 10 মিনিটের জন্য অলস থাকে তবে সাসপেন্ড করার চেষ্টা করুন, যদি তিনি আরও 5 মিনিটের জন্য অলস থাকেন তবে শাটফ (আমি জানি এটি অদ্ভুত মনে হচ্ছে, তবে সাসপেন্ডটি এখানে সর্বদা কার্যকর হয় না ...)

উত্তর:


38

এটি করার সহজ উপায় খুঁজে পেয়েছি।

Xprintidle নামে একটি প্রোগ্রাম আছে যা কৌশলটি করে

অলস সময় (মিলি সেকেন্ডে) পাওয়া যতটা সহজ

xprintidle

এবং ইনস্টল করতে

apt-get install xprintidle

সিসাদমিনদের জন্য, এটি দূরবর্তীভাবেও কাজ করে

একটি ssh অধিবেশন থেকে :

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

জন জন যেখানে রিমোট মেশিনে এক্স সেশনে লগইন হয়।


4

এখান থেকে উত্তর :

ব্যাশে

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

প্রতিটি শেলের জন্য আপনাকে একটি ব্যবহারকারী নাম / আইডলটাইম জুড়ি দেয়। সুতরাং মূলত আপনি কমান্ডের মাধ্যমে নিষ্ক্রিয় তথ্য পেতে পারেনw


টার্মিনালের মাধ্যমে নয় এমন এক্সের সাথে এই গণনা ইন্টারঅ্যাকশনটি কীভাবে করবে? পছন্দ করুন, একটি ফায়ারফক্সের ভিতরে একটি মাউস আন্দোলন বলুন। যদি ব্যবহারকারীটি মাউসটি সরানো হয় তবে আমি উত্তরটি "অলস নয়", বা "0 সেকেন্ডের জন্য অলস" পেতে চাই
জোসিনালভো

wআমার মনে হয় @ জোসিনালভো আপনাকে সেই নির্দিষ্ট টার্মিনালটিতে কেবল অলস সময় দেয়।
ড্যান

3
অলস সময়টি আসলে চলমান সময়, প্রক্রিয়াটির আপটাইম (ডাব্লু আউটপুটটির WHAT কলাম)। সুতরাং এটি ব্যবহারকারী তার X সেশনে কতক্ষণ অলস থাকে সে সম্পর্কে কোনও ধারণা দেয় না।
রোশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.