Automating Mobile Workflows: Running Persistent Background Cron Jobs in Termux
স্মার্টফোন দিয়ে ২৪/৭ লাইভ স্ট্রিমিং অটোমেশন, এপিআই মনিটরিং কিংবা কোনো স্ক্রিপ্ট নির্দিষ্ট সময় পর পর স্বয়ংক্রিয়ভাবে রান করানোর জন্য ক্রন জবস (Cron Jobs) একটি অত্যন্ত শক্তিশালী টুল। তবে অ্যান্ড্রয়েড ওএসের (Android OS) কঠোর ব্যাটারি অপ্টিমাইজেশন পলিসির কারণে টারমাক্স ব্যাকগ্রাউন্ডে যাওয়ার কিছুক্ষণ পরেই সিস্টেম সেটিকে "Force Close" বা কিল করে দেয়।
আজকের টিউটোরিয়ালে আমরা দেখবো কীভাবে অ্যান্ড্রয়েডের এই মেকানিজমকে বাইপাস করে টারমাক্সে একটি স্থায়ী ব্যাকগ্রাউন্ড প্রসেস চালু রাখা যায় এবং নিখুঁতভাবে লিনাক্স ক্রনস্ট্যাব (Crontab) কনফিগার করা যায়।
১. অ্যান্ড্রয়েড ওএম এবং টারমাক্স ওয়েক লক কনফিগারেশন
সবচেয়ে প্রথমে আপনার ফোনের Settings ➔ Apps ➔ Termux এ গিয়ে ব্যাটারি সেভার অপশনটি "Unrestricted" বা "No Restrictions" করে দিন। এরপর টারমাক্স টার্মিনাল ওপেন করে নিচের কমান্ডটি দিন যাতে ওএস স্লিপ মোডে গেলেও সিপিইউ সচল থাকে:
# টারমাক্সকে ব্যাকগ্রাউন্ডে সচল রাখার জন্য ওয়েক লক চালু করা
termux-wake-lock
ধাপ ২: Cronie প্যাকেজ ইনস্টল এবং সার্ভিস রান করা
টারমাক্সে স্ট্যান্ডার্ড লিনাক্স ক্রন সিস্টেম ব্যবহারের জন্য আমাদের cronie মডিউলটি ইনস্টল করতে হবে। একই সাথে ব্যাকগ্রাউন্ড প্রসেস ট্র্যাকিংয়ের জন্য টারমাক্স বুট বা ইউটিলিটি টুল অন করতে হবে:
# প্যাকেজ আপডেট ও ইনস্টলেশন
pkg update && pkg install cronie termux-services -y
# ক্রন ডেমো সার্ভিস ব্যাকগ্রাউন্ডে স্টার্ট করা
crond
ধাপ ৩: কাস্টম ক্রন জব (Crontab) শিডিউল করা
এখন আমরা একটি স্ক্রিপ্ট তৈরি করবো যা প্রতি ১০ মিনিট পর পর ব্যাকগ্রাউন্ডে স্বয়ংক্রিয়ভাবে রান করবে। আপনার ক্রন এডিটর ফাইল ওপেন করতে লিখুন:
crontab -e
এডিটর ওপেন হলে নিচের লাইনটি যুক্ত করে সেভ করুন (এখানে আমরা উদাহরণ হিসেবে একটি পাইথন স্ক্রিপ্ট বা সেশন ট্র্যাকার রান করছি):
*/10 * * * * python ~/my_automation_script.py >> ~/cron_log.txt 2>&1
প্রো-লেভেল মেকানিজম: ক্রন জবসগুলোর রিয়েল-টাইম অ্যাক্টিভিটি এবং কোনো এরর (Error) আসছে কিনা তা চেক করতে cat ~/cron_log.txt কমান্ড দিয়ে লগ ফাইল মনিটর করবেন। এই সেটআপের মাধ্যমে আপনার ফোন পকেটে বা স্ক্রিন অফ থাকলেও ব্যাকগ্রাউন্ডে ডেটা স্ক্র্যাপিং বা অটো-লাইভ স্ট্রিমিং পাইপলাইন নিরবচ্ছিন্নভাবে চলতে থাকবে।