চলমান .শ প্রতি 5 মিনিটে


12

আমার কাছে একটি .sh স্ক্রিপ্ট রয়েছে যা জাপানি উপগ্রহের সার্ভার থেকে একটি ফটো ডাউনলোড করে এবং এটি একটি পটভূমি চিত্র হিসাবে সেট করে। আমি এটি স্টার্টআপ তালিকায় রেখেছি, তবে আমি কীভাবে এটি প্রতি মিনিট 5 মিনিটের মতো স্বয়ংক্রিয়ভাবে চালাব?


1
ক্রোনমেকার ডট কম ব্যবহার করে দেখুন, সেখানে আপনি ক্রোন-এক্সপ্রেশন করতে পারেন এবং এটি ক্রন্টব-এর সাথে রাখতে পারেন
আমরা

2
ছবিটি কি প্রতি 5 মিনিটেও পরিবর্তিত হয়? একটি বিরতি ব্যবহার করে চেষ্টা করুন যা লক্ষ্য সার্ভারে অপ্রয়োজনীয় লোড তৈরি করে। অথবা ফাইলটি সত্যই পরিবর্তিত হলে আপনি কেবল ডাউনলোড করেছেন তা নিশ্চিত করুন।
til_b

1
যাইহোক, স্থান ব্যাকগ্রাউন্ডের জন্য url কী?
বোহদান_ট্রোটসেনকো

উত্তর:


14

অলস বিকল্প

আপনি যদি সহজ উপায় চান, এবং কোন পরিবেশে পরিবর্তনশীল সেট করতে হবে তা খুঁজে বের করতে এড়ান:

  • আপনার স্ক্রিপ্টে শিবাং রয়েছে তা নিশ্চিত করুন
  • এটি কার্যকর করা
  • স্টার্টআপ অ্যাপ্লিকেশনগুলিতে নিম্নলিখিতগুলি যুক্ত করুন:

    /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

আপনি তবে খুব তাড়াতাড়ি বাঁচাতে পারেন, এবং অলস বিকল্পটি বেছে নিতে পারেন।


@ আলেকসান্ডারমাহিনীভ আপনাকে স্বাগতম। খুশী এটি কাজ করে :)
জ্যাকব ভিলিজম

2
ক্রোন জব ব্যবহার করা অনেক ভাল।
লুকা রামিশভিলি

1
@ লুকাশরামিশিলি মন্তব্যের জন্য ধন্যবাদ তবে: ক। এবং এটা কেন? একটি ঘুমন্ত কমান্ড আপনার সিস্টেমে কিছুই বোঝায় না । খ। আমি এমনকি বিকল্প অন্তর্ভুক্ত।
জ্যাকব Vlijm

1
অন্যথায়, জিনোম সেশন ভেরিয়েবলগুলি সম্পর্কে দুর্দান্ত গবেষণা, এটি ওপিকে অনেক সহায়তা করবে, যেহেতু যে কোনওভাবেই এটির প্রয়োজন হবে।
লুকা রামিশভিলি

2
আমি কেবল তাকালাম: cpu 0.0%আমরা কোন করের কথা বলছি?
জ্যাকব Vlijm

25

এটি আপনার মধ্যে রাখুন 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


1
এটি ক্রোন এর সীমিত পরিবেশের ভেরিয়েবলের সাথে কাজ করে কিনা তা নিশ্চিত নয়, তবে ওপি এর কাজ করে কিনা উল্লেখ করুন :)
জ্যাকব ভিলিজ

1
@AleksanderMahnyov দয়া করে সম্পাদন করা আপনার প্রশ্নের contents..possibly একটি দেখে স্ক্রিপ্ট, বলা কঠিন যোগ করার জন্য DISPLAY(এবং / অথবা XAUTHORITY) ইস্যু ..
heemayl

1
@Kartagis ক্রন সেকেন্ড হ্যান্ডেল করতে পারে না, এছাড়াও আপনি যা এখনও চিহ্নগুলি সিন্টেক্সের ভুল ঘন্টার জন্য কি করতে চেষ্টা করছেন ..
heemayl

2
আমি "অলস পদ্ধতি" এর চেয়ে এই পদ্ধতিটি পছন্দ করি কারণ ক্রোন সম্পর্কে আমি জানতাম তবে কিছুটা রিফ্রেশার কোর্সের প্রয়োজন ছিল। আমি ঠিক তাই করেছি, অনেক ধন্যবাদ! :)
জ্যাক্সলফুল

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