বিদ্যুৎ সরবরাহটি প্লাগ-ইন বা আউট-এ থাকা অবস্থায় আমি কীভাবে কোনও স্ক্রিপ্ট চালাতে পারি?


8

কোনও কারণে, যখন আমি বিদ্যুৎ সরবরাহ প্লাগ-ইন করি বা প্লাগ আউট করি তখন আমার ল্যাপটপের স্ক্রিনের উজ্জ্বলতা আপডেট হয় না। আমি এই সমস্যার জন্য বেশ কয়েকটি সমাধান দেখেছি, তবে তাদের কোনওটিই ভালভাবে কাজ করছে বলে মনে হয়নি। সুতরাং, হতাশ হওয়া এবং হাল ছেড়ে দেওয়ার পরিবর্তে, আমি এটিকে একটি শিক্ষার অভিজ্ঞতায় পরিণত করার চেষ্টা করার সিদ্ধান্ত নিয়েছি এবং দেখুন যে কোনও স্ক্রিপ্ট আমার পক্ষে তা লিখতে পারে না কিনা তা দেখুন।

আমি অবশ্যই ইন্টারনেট থেকে কিছু সাহায্য নিয়ে এটিকে নিজেই আবিষ্কার করার চেষ্টা করেছি, তবে আমি সাধারণত স্ক্রিপ্টিং এবং উবুন্টুকে বাশ দেওয়ার জন্য বেশ নতুন, তাই আমি আর পেলাম না।

আমি কি চিন্তা করতে সক্ষম হন যে আমি করতে পারেন ছিল ব্যাটারির রাষ্ট্র এটি সঙ্গে

$ upower -i /org/freedesktop/UPower/devices/battery_BAT1 | grep -E "state"
state:     charging/discharging

এসি অ্যাডাপ্টারটি প্লাগ ইন করা হয়েছে কি না তার উপর নির্ভর করে that's এটি এমনকি দরকারী কিনা তা আমি জানি না তবে এটি দুর্দান্ত। এবং আমি কীভাবে grepআগে ব্যবহার করতে হয় তা জানতাম না , তবে কী, শেখা মজাদার।

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

আমি অনুরূপ একটি প্রশ্ন পেয়েছি যেটির একটি ভাল উত্তর ছিল এটি হ'ল এটি যা নিম্নলিখিত:

আপনি যখন এসি অ্যাডাপ্টারে প্লাগ ইন / আউট করেন তখন স্ক্রিপ্টগুলি /etc/pm/power.d> একটি যুক্তি: "সত্য" (যদি আপনি ব্যাটারিতে চালিত হন) বা "মিথ্যা" (আপনি যদি পাওয়ার> অ্যাডাপ্টারের সাথে চালনা করেন) বলে ডাকে।

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

উত্তর:


5

on_ac_powerবিদ্যুৎ সরবরাহ চালু বা বন্ধ হয়ে গেলে আপনি স্ক্রিপ্ট চালাতে ব্যবহার করতে পারেন ।

একটি টার্মিনালে নিম্নলিখিত চেষ্টা করুন।

$ on_ac_power
$ echo $?
0              ## Laptop on ac power

$ on_ac_power
$ echo $?
1              ## Laptop on battery (not on ac power)

এর ভিত্তিতে আপনি আপনার স্ক্রিপ্টটি হিসাবে তৈরি করতে পারেন,

#!/bin/bash
while true
do
    if on_ac_power; then 
        do_something               ## Laptop on power
    else
        do_something_else          ## Laptop on battery
    fi
    sleep 10                       ## wait 10 sec before repeating
done

সম্পাদনা: [ ক্যাসিয়াএ দ্বারা প্রস্তাবিত ]

cron job অসীম লুপটি ব্যবহার না করে নিয়মিত বিরতিতে স্ক্রিপ্টটি চালানোর পক্ষে আরও ভাল ধারণা হবে।

আপনার স্ক্রিপ্টটি সংরক্ষণ করুন myscript.shএবং এতে নীচের সামগ্রীটি রেখে দিন,

#!/bin/bash
if on_ac_power; then 
    do_something
else
    do_something_else
fi

টার্মিনাল থেকে স্ক্রিপ্টটি সম্পাদনযোগ্য করুন chmod +x /path/to/myscript.sh,। আপনার ব্যক্তিগত crontabহিসাবে খুলুন EDITOR=gedit crontab -eএবং প্রতি মিনিটে আপনার স্ক্রিপ্টটি চালানোর জন্য এটিতে নিম্নলিখিত লাইনটি যুক্ত করুন।

* * * * * /path/to/myscript.sh 

স্ক্রিপ্টগুলি অসীমভাবে চলমান রাখা কি খারাপ অভ্যাস, নাকি নিয়মিত ঘটে এবং সিস্টেমে অন্তর্নির্মিত এমন কিছু? আমি অনুমান করি যে আমি কোনও ধরণের ট্রিগার খুঁজছিলাম তবে যদি এটি কাজ করে তবে আমার ধারণা থেকে এটি অনেক কম জটিল।
জ্যাস্পার

@ দ্য কিউজেড: আমার মনে হয় 'সুরভ্যাক' প্রাথমিক ধারণা দিয়েছে..আপনি এর ভিত্তিতে নিজের লেখা লিখতে পারেন :)
হিমাইল

@ দ্য কিউজেড যদিও এটি চিরতরে চলে তবে প্রতি 10 সেকেন্ডে একবারেই সক্রিয় হয়ে যায় (আপনি চেকের সময় বাড়িয়ে নিতে পারেন) কীভাবে প্রতি -কমান্ড-প্রতি-এক্স-ইন্টারভাল-অফ-বার পুনরাবৃত্তি করতে হবে সে প্রশ্নটি দেখুন । অন্যথায় আপনার নিজের ডেমন প্রোগ্রাম লিখতে হবে যা নতুনদের জন্য জটিল।
সুরভ্যাক

@TheQZ আপনি সৌরভকের উত্তর ক্রোন জব হিসাবে ব্যবহার করতে পারেন । আমার এই উত্তরের
27sнιη

2
আরও ভাল উপায় হ'ল অনুরূপবন্টু / প্রশ্ন / 613741/… হিসাবে ইউদেব বিধি ব্যবহার করা ।
অ্যান্টনি ওয়াং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.