আপনি আমাকে কী লিখতে পরামর্শ দিতে crontab
পারেন যাতে /usr/bin/chromium-browser
প্রতি 15 সেকেন্ডে এটি কিছু কাজ চালায় (পরীক্ষার জন্য আমি ব্যবহার করব )?
আপনি আমাকে কী লিখতে পরামর্শ দিতে crontab
পারেন যাতে /usr/bin/chromium-browser
প্রতি 15 সেকেন্ডে এটি কিছু কাজ চালায় (পরীক্ষার জন্য আমি ব্যবহার করব )?
উত্তর:
আপনি ক্রোন দিয়ে এক মিনিটের গ্রানুলারিটির নীচে যেতে পারবেন না। আপনি যা করতে পারেন তা হ'ল, প্রতি মিনিটে, একটি স্ক্রিপ্ট চালান যা আপনার কাজ চালায়, 15 সেকেন্ড অপেক্ষা করে এবং পুনরাবৃত্তি করে। নিম্নলিখিত ক্রন্টব লাইন some_job
প্রতি 15 সেকেন্ডে শুরু হবে ।
* * * * * for i in 0 1 2; do some_job & sleep 15; done; some_job
এই স্ক্রিপ্টটি ধরে নিয়েছে যে কাজটি 15 সেকেন্ডের বেশি সময় নেয় না। নিম্নলিখিত চালিয়ে যাওয়ার ক্ষেত্রে যদি খুব বেশি সময় লেগে থাকে তবে নীচের সামান্য জটিল স্ক্রিপ্টটি পরবর্তী উদাহরণটি না চালানোর বিষয়ে যত্নশীল। এটি ফর্ম্যাটটি date
সমর্থন করার উপর নির্ভর করে %s
(যেমন জিএনইউ বা ব্যসিবক্স, সুতরাং আপনি লিনাক্সে ঠিক থাকবেন)। যদি আপনি এটি সরাসরি কোনও ক্রন্টবায় রাখেন তবে নোট করুন যে কোনও ক্রন্টব লাইনে %
অক্ষরগুলি অবশ্যই লেখা উচিত \%
।
end=$(($(date +%s) + 45))
while true; do
some_job &
[ $(date +%s) -ge $end ] && break
sleep 15
wait
done
[ $(date +%s) -ge $(($end + 15)) ] || some_job
তবে আমি খেয়াল করব যে আপনার যদি প্রতি 15 সেকেন্ড হিসাবে প্রায়শই একটি কাজ চালানোর প্রয়োজন হয় তবে ক্রোন সম্ভবত ভুল পদ্ধতি। যদিও ইউনিসেসগুলি স্বল্প-কালীন প্রক্রিয়াগুলির সাথে ভাল, তবে প্রতি 15 সেকেন্ডে একটি প্রোগ্রাম চালু করার ওভারহেড অদক্ষ হতে পারে (প্রোগ্রামটি কীভাবে দাবি করা হচ্ছে তার উপর নির্ভর করে)। আপনি কি সর্বদা আপনার অ্যাপ্লিকেশন চালাতে পারবেন না এবং প্রতি 15 সেকেন্ডে এটির কার্য সম্পাদন করতে পারেন?
1 2 3 4 ; do some_job & sleep 15; done
(শেষ ঘুম পরবর্তী রানটিকে প্রভাবিত করবে না), তবে আপনি যেভাবে করছেন সেটি সম্ভবত বহির্গামী ক্রোনজব মেইলের সময়কালের জন্য ভাল (শেষের কিছু_জবের পরে পাঠানো হয়েছে, পরে 15 এর দশকের আন্তের আমার বৈকল্পিক)
অন্যদের চেয়ে পৃথক পদ্ধতি: 4 ক্রোনজব চালান, প্রতিটি 15 সেকেন্ড দ্বারা স্তব্ধ হয়ে থাকে:
* * * * * sleep 00; timeout 15s some_job
* * * * * sleep 15; timeout 15s some_job
* * * * * sleep 30; timeout 15s some_job
* * * * * sleep 45; timeout 15s some_job
কাজটি নিজেকে হস্তক্ষেপ করা থেকে বিরত রাখতে আমরা প্রতিটি কাজের জন্য GNU কোর্টিলস 'এর মাধ্যমে তার রানটাইমকে 15 সেকেন্ডের মধ্যে সীমাবদ্ধ করি timeout
। তবে নোট করুন, তবে কাজটি যদি 15 এর শেষের দিকে অবিলম্বে সঠিকভাবে প্রস্থান করতে ব্যর্থ হয় তবে আপনি এখনও সমস্যাগুলি সহ শেষ করতে পারেন। যদি এটি কোনও সমস্যা হয়ে যায় তবে কীভাবে সমাধান করা যায় তার বিশদগুলির জন্য কমান্ড ম্যানুয়ালটি দেখুন। আরও মনে রাখবেন, কমান্ডটি যদি 15 এর বেশি সময় নেয় এবং সময়সীমাটি এটি মেরে ফেলেছে তবে আপনি একটি শূন্য-বহির্গমন স্থিতি পাবেন যা ক্রোনজব-ইমেলকে ট্রিগার করবে।
সংক্ষেপে, ক্রোন সময় সঙ্গে যে দানাদার হয় না। আপনি পাবেন সবচেয়ে স্বল্পতম সময়টি 1 মিনিট।
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .----- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
* * * * /usr/bin/chromium-browser
তবে আপনি এমন একটি স্ক্রিপ্ট লিখতে পারেন যা প্রতি 15 সেকেন্ড চলবে ...
* * * * * /usr/bin/chromium-browser
ক্রন্টবায় একটি লাইন আছে। ম্যানুয়াল অনুসারে এটি প্রতি মিনিটে চালানো উচিত তবে কিছুই চলছে না।
আপনার ক্রোনটবে:
* * * * /usr/bin/chromium-browser_starter
তারপরে /usr/bin/chromium-browser_starter
:
#!/bin/sh
# chromium-browser_starter
#
# Schedules /usr/bin/chromium-browser to run every 15 seconds for a minute.
# Intended to be called every minute through crond(8).
for ((secs=0; secs<46; secs+=15)); do
(sleep $secs; /usr/bin/chromium-browser "$@") &
done
wait
ps aux | grep chrom
এক মিনিটের পরে লিখি আমি ক্রোমিয়াম-ব্রাউজারটি চলমান দেখতে পাচ্ছি না।
sleep
।