অ্যাপকে & বা nohup দিয়ে চালানো ঠিক আছে — যতক্ষণ না সার্ভার রিবুট হয়, প্রসেস ক্র্যাশ করে, বা আপনি তার লগ খুঁজতে চান — তখন সব ভেঙে পড়ে। systemd হলো মানক উত্তর: এটি বুটে আপনার অ্যাপ শুরু করে, মরলে পুনরায় চালু করে, এবং তার লগ ধরে। একটি স্ক্রিপ্ট বা বাইনারিকে পরিচালিত সার্ভিসে রূপান্তর করা একটি ছোট ফাইলের ব্যাপার।
১. একটি ইউনিট ফাইল লিখুন
/etc/systemd/system/myapp.service তৈরি করুন:
[Unit]
Description=My application
After=network.target
[Service]
User=myapp
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/python3 /opt/myapp/run.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
ExecStart, WorkingDirectory ও User আপনার অ্যাপ অনুযায়ী সমন্বয় করুন। Restart=always হলো যা একে জীবিত রাখে।
২. একটি নিবেদিত ব্যবহারকারী তৈরি করুন (সুপারিশকৃত)
sudo useradd --system --no-create-home --shell /usr/sbin/nologin myapp
sudo chown -R myapp:myapp /opt/myapp
non-root ব্যবহারকারী হিসেবে চালানো অ্যাপ কখনো আপস হলে ক্ষতি সীমিত করে।
৩. এটি সক্রিয় করুন এবং শুরু করুন
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
enable একে বুটে শুরু করায়; --now এখনই শুরু করে।
৪. স্ট্যাটাস ও লগ দেখুন
sudo systemctl status myapp
journalctl -u myapp -f # সরাসরি লগ অনুসরণ করুন
দৈনন্দিন কমান্ড
sudo systemctl restart myapp # পরিবর্তনের পর পুনরায় চালু করুন
sudo systemctl stop myapp # থামান
sudo systemctl disable myapp # বুটে শুরু হওয়া বন্ধ করুন
সৎ সতর্কবার্তা
- ইউনিট ফাইল সম্পাদনার পর
daemon-reloadচালান, নইলে systemd পুরনো সংস্করণ ব্যবহার করে। - ক্র্যাশ লুপ সম্পর্কে সতর্ক থাকুন। অ্যাপ তৎক্ষণাৎ ব্যর্থ হলে
Restart=alwaysচিরকাল পুনরায় চেষ্টা করে —RestartSec=5চেষ্টাগুলোর মধ্যে ব্যবধান দেয়; লগের মাধ্যমে মূল ত্রুটি ঠিক করুন। - non-root
User=কে অগ্রাধিকার দিন যাতে আপস হওয়া অ্যাপ পুরো সার্ভারের মালিক না হয়।
পরবর্তী ধাপ
systemd সার্ভিস হলো যেভাবে আপনি যেকোনো কিছু ২৪/৭ চালু রাখেন — উদাহরণস্বরূপ চব্বিশ ঘণ্টা চলা একটি AI এজেন্ট বা সেল্ফ-হোস্টেড RustDesk সার্ভার-এর পেছনের রিলে। আপনার অ্যাপ বরং কনটেইনারাইজড হলে, Docker-এর --restart unless-stopped একই ভূমিকা পালন করে — দেখুন Docker কীভাবে ইনস্টল করবেন।
মন্তব্য
এখনো কোনো মন্তব্য নেই। প্রথম হোন।