আমার কাছে একটি .sh স্ক্রিপ্ট রয়েছে যা জাপানি উপগ্রহের সার্ভার থেকে একটি ফটো ডাউনলোড করে এবং এটি একটি পটভূমি চিত্র হিসাবে সেট করে। আমি এটি স্টার্টআপ তালিকায় রেখেছি, তবে আমি কীভাবে এটি প্রতি মিনিট 5 মিনিটের মতো স্বয়ংক্রিয়ভাবে চালাব?
আমার কাছে একটি .sh স্ক্রিপ্ট রয়েছে যা জাপানি উপগ্রহের সার্ভার থেকে একটি ফটো ডাউনলোড করে এবং এটি একটি পটভূমি চিত্র হিসাবে সেট করে। আমি এটি স্টার্টআপ তালিকায় রেখেছি, তবে আমি কীভাবে এটি প্রতি মিনিট 5 মিনিটের মতো স্বয়ংক্রিয়ভাবে চালাব?
উত্তর:
আপনি যদি সহজ উপায় চান, এবং কোন পরিবেশে পরিবর্তনশীল সেট করতে হবে তা খুঁজে বের করতে এড়ান:
স্টার্টআপ অ্যাপ্লিকেশনগুলিতে নিম্নলিখিতগুলি যুক্ত করুন:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"
ড্যাশ> প্রারম্ভিক অ্যাপ্লিকেশন> অ্যাড। কমান্ড যুক্ত করুন:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"
আপনি যদি নিজের পরিবেশ থেকে স্ক্রিপ্টটি চালনা করেন (যেমন টার্মিনাল উইন্ডো থেকে বা স্টার্টআপ অ্যাপ্লিকেশন থেকে), বেশ কয়েকটি পরিবেশের ভেরিয়েবল সেট করা হবে। cron
তবে আপনার স্ক্রিপ্টটি সীমিত পরিবেশের ভেরিয়েবলের সাহায্যে চালায়।
যেহেতু আপনার লিপিটি কোনও সন্দেহ ছাড়াই gsettings
কমান্ডটি ব্যবহার করেছে :
gsettings get org.gnome.desktop.background picture-uri <wallpaper>
ওয়ালপেপার সেট করতে, চালানো যখন প্রায় কমান্ডটি বিরতি হবে cron
।
"অলস সমাধান" এর নেতিবাচক দিকটি সম্পূর্ণ তাত্ত্বিক। কার্যত নিরন্তর ঘুমায় এমন একটি আদেশ আপনার সিস্টেমে কোনও কিছুই বোঝায় না ।
এই পোস্টটি পড়া , এবং অতীতের অভিজ্ঞতা থেকে, আমি নিশ্চিত যে DBUS_SESSION_BUS_ADDRESS
পরিবেশের পরিবর্তনশীল সেট করা দরকার am
এটি করতে, আপনার স্ক্রিপ্টের শুরুতে (শেবাংয়ের নীচে) নিম্নলিখিত বিভাগটি যুক্ত করুন:
PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
তারপরে আপনার এটিকে সফলভাবে চালানো উচিত cron
।
আপনি তবে খুব তাড়াতাড়ি বাঁচাতে পারেন, এবং অলস বিকল্পটি বেছে নিতে পারেন।
cpu 0.0%
আমরা কোন করের কথা বলছি?
এটি আপনার মধ্যে রাখুন crontab
।
এর মাধ্যমে আপনার cron
টেবিলটি খুলুন :
crontab -e
এখন যোগ করুন:
*/5 * * * * /path/to/script.sh
আগে থেকে স্ক্রিপ্টটি কার্যকর করতে ভুলবেন না।
আপনার স্ক্রিপ্টটি এক্সের উপর নির্ভর করে, সম্ভবত DISPLAY
স্ক্রিপ্টের পরিবেশে যুক্ত করার জন্য এটি একটি ভাল ধারণা হবে :
*/5 * * * * DISPLAY=:0 /path/to/script.sh
:0
আপনার প্রকৃত সাথে প্রতিস্থাপন করুন DISPLAY
( echo $DISPLAY
ইন্টারেক্টিভ সেশন থেকে এটি পাওয়া যাবে )।
প্রয়োজনে আপনি XAUTHORITY
পরিবেশের পরিবর্তনশীলও যুক্ত করতে পারেন :
*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh
আবার আপনি মানটি খুঁজে পেতে পারেন echo $XAUTHORITY
।
DISPLAY
(এবং / অথবা XAUTHORITY
) ইস্যু ..