স্ক্রিন লক / আনলক এ কীভাবে কোনও কমান্ড বা স্ক্রিপ্ট চালানো যায়?


19

আমি স্ক্রিনের সময় লক / আনলক সঞ্চয় করার উপায় খুঁজছি।

A=$(date)
echo $A >> $HOME/time_xprofile

আমি কি চেষ্টা করেছি:

$HOME/.bashrc
$HOME/.bash_logout
$HOME/.bash_prompt
$HOME/.xprofile

তারপরে আমি স্ক্রিনটি লক করে দিয়েছি এবং ফাইলটি উপস্থিত হয়েছে কিনা তা যাচাই করেছিলাম এবং প্রতিবার এটি ব্যর্থ হয়। আমি কিভাবে সময় চেয়ে পরীক্ষা করতে পারেন?


এই প্রশ্নটি পড়ার সাথে সাথে আমি ভেবেছিলাম আপনি কোনও এক্স সার্ভার চালাচ্ছেন না। আপনি যে উত্তরটি নির্বাচন করেছেন তা এক্স সার্ভার চালানোর সময় নিখুঁতভাবে কাজ করছে । হতে পারে আপনি আপনার পরিস্থিতি আরও ভালভাবে বর্ণনা করতে পারেন ...
এক্সপ্লোরওয়্যার

এফডাব্লুআইডাব্লু, এই প্রশ্নটি ইউনিক্স / লিনাক্স স্ট্যাকেক্সচেঞ্জেও জিজ্ঞাসা করা হয়েছিল ।
জোয়েটউইডল

উত্তর:


20

নীচের স্ক্রিপ্টটি time_xprofileআপনার বাড়ির কোনও ফাইলে লক / আনলক সময় লিখবে ।

#!/bin/bash

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | \
( while true
    do read X
    if echo $X | grep "boolean true" &> /dev/null; then
        echo "locking at $(date)" >> $HOME/time_xprofile
    elif echo $X | grep "boolean false" &> /dev/null; then
        echo "unlocking at $(date)" >> $HOME/time_xprofile
    fi
    done )

স্ক্রিপ্ট সংরক্ষণ করুন। এটি কার্যকর করার অনুমতি দিন।

chmod +x script.sh

কীভাবে চালাবেন

./script.sh &

দ্রষ্টব্য স্ক্রিপ্টটি ব্যাক গ্রাউন্ডে চলতে হবে। এটি মারবেন না স্ক্রিপ্টটি পটভূমিতে চলাকালীন আপনি যদি আপনার স্ক্রিন লক / আনলকটি ঘুরিয়ে দেন তবে আপনার লক / আনলক করার সময়টি time_xprofileআপনার বাড়িতে ফাইলের মধ্যে রেকর্ড করা হবে । স্ক্রিন লক / আনলক এ কোনও কমান্ড বা স্ক্রিপ্ট চালাতে এটি ব্যবহার করতে পারেন।

মনে রাখবেন যে আপনি যদি বর্তমান টার্মিনালটি বন্ধ করেন তবে আপনার স্ক্রিপ্টটি মারা যাবে। তুমি ব্যবহার করতে পার

nohup ./script.sh &

তারপরে এটি টার্মিনালটি বন্ধ করার পরেও চলতে থাকবে।

স্ক্রিপ্টটি কীভাবে মেরে ফেলা যায়

প্রক্রিয়াটি হারাতে, টার্মিনালে ব্যবহার করুন

ps ax| grep "[s]cript.sh" | cut -d' ' -f2 | xargs kill

উপরে স্ক্রিপ্ট এই উত্তর দ্বারা অনুপ্রাণিত


এটি এখনও এক্সসার্ভারের সাথে ওবুন্টু 17.10 এ কাজ করছে? আমি জানি না কেন আমার জন্য কাজ করছে না ..
এডিডিফেট্রো

এর চেয়েও বেশি: এটি কেবল কয়েকবার কাজ করে ...
এডিডিফেট্রো

1
@diefettro এখনও আমি 16.04 এ রয়েছি এটি আপনার জন্য পরীক্ষা করতে পারে না। আপনি কেন আপনার সমস্যাগুলি উল্লেখ করে একটি নতুন প্রশ্ন জিজ্ঞাসা করবেন না? স্ক্রিন লকের জন্য ডিবিস ইভেন্টটি 17.10
-র

6

উবুন্টু ১৪.০৪-এ স্ক্রিন লক আনলকের জন্য ডিবাস ইভেন্টটি পরিবর্তিত হয়েছে এবং স্ক্রিন লক এবং আনলক ইভেন্টগুলিকে আবদ্ধ করার জন্য নতুন স্ক্রিপ্টটি নীচের মত দেখাচ্ছে

dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6'" | \
(
  while true; do
    read X
    if echo $X | grep "desktop-lock" &> /dev/null; then
      SCREEN_LOCKED;
    elif echo $X | grep "desktop-unlock" &> /dev/null; then
      SCREEN_UNLOCKED;
    fi
  done
)

আপনার যা করা দরকার তা দিয়ে SCREEN_LOCKED এবং SCREEN_UNLOCKED প্রতিস্থাপন করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.