আপনি যদি একটি আধুনিক লিনাক্স ডিস্ট্রো ব্যবহার করেন, তাহলে আপনি অবশ্যই শাট ডাউনের সময় "একটি স্টপ জব চলছে" বার্তাটি দেখতে পাবেন এবং এটি 90 সেকেন্ড পর্যন্ত শাটডাউন প্রক্রিয়াটিকে বিরতি দেবে। এই বার্তাটি কেন উপস্থিত হয় তা খুঁজে বের করুন এবং আপনি কীভাবে এটি প্রশমিত করতে পারেন৷
৷সূচিপত্র
এটি একটি নিরাপত্তা বৈশিষ্ট্য, একটি বাগ নয়
আপনাকে প্রথমেই যে জিনিসটি জানতে হবে তা হল "একটি স্টপ জব চলছে" বার্তাটি সিস্টেমে তৈরি একটি নিরাপত্তা বৈশিষ্ট্য, বাগ নয়৷
উবুন্টু, ফেডোরা এবং আর্চের মতো আধুনিক লিনাক্স ডিস্ট্রিবিউশনগুলি বুট এবং শাটডাউন প্রক্রিয়াগুলি পরিচালনা করতে সিস্টেমড ব্যবহার করে। আপনি যখন শাট ডাউন ক্লিক করেন, সিস্টেমড কেবল পাওয়ার প্লাগ টানবে না। এটি SIGTERM নামে একটি ভদ্র সংকেত পাঠায় প্রতিটি চলমান পরিষেবা এবং অ্যাপ্লিকেশনে। বেশিরভাগ অ্যাপ্লিকেশন, এই সংকেতটি পাওয়ার পরে, তাদের ডেটা সংরক্ষণ করে, তাদের ফাইলগুলি বন্ধ করে এবং সুন্দরভাবে বন্ধ করে দেয়৷
যাইহোক, কিছু পরিষেবার তাদের কাজগুলি সম্পূর্ণ করতে এবং সংকেত উপেক্ষা করতে আরও সময় প্রয়োজন। আপনি যখন সতর্ক বার্তা দেখতে পাবেন তখনই। এই বিলম্ব সাধারণত ঘটে কারণ নেটওয়ার্ক ম্যানেজার, কন্টেইনার, ব্যবহারকারীর সেশন বা নেটওয়ার্ক মাউন্ট করা ড্রাইভের মতো নির্দিষ্ট পরিষেবাগুলির সংযোগ বন্ধ করতে বা নিরাপদে ডেটা সংরক্ষণ করতে অতিরিক্ত সময়ের প্রয়োজন হয়৷
অনেক লিনাক্স ব্যবহারকারী সমাধানের জন্য অনুসন্ধান করে যখন তারা "একটি স্টপ জব চলছে" বার্তাটি দেখে, অনুমান করে কিছু নষ্ট হয়েছে। সত্য হল যে সিস্টেমড বিকাশকারীরা উদ্দেশ্যমূলকভাবে এই আচরণটি তৈরি করেছেন। মূলত, এটি অপেক্ষার সময়কাল, সাধারণত 90 সেকেন্ড, যা Systemd তাদের মুলতুবি কাজগুলি শেষ করতে পরিষেবা দেয়। কনফিগার করা টাইমআউটের মধ্যে কোনো পরিষেবা শেষ না হলে, Systemd জোরপূর্বক SIGKILL ব্যবহার করে এটি বন্ধ করে দেয় এবং শাটডাউন প্রক্রিয়া অব্যাহত রাখে।
এই সুন্দর শাটডাউনের সাথে, অনেক অ্যাপ্লিকেশন তারা যা করছে তা শেষ করে, যেমন ফাইল বন্ধ করা, ডাটাবেস লেনদেন সম্পূর্ণ করা এবং ফাইল সিস্টেমগুলি পরিষ্কারভাবে আনমাউন্ট করা। আপনি এখনও অপেক্ষা অপসারণ করতে পারেন এবং দ্রুত শাটডাউনগুলি করতে পারেন, তবে এটি করার ফলে সাম্প্রতিক লেখাগুলি বা লেনদেনগুলি হারানোর, ডাটাবেস বা জার্নাল ফাইলগুলি দূষিত হওয়ার বা অস্থির অবস্থায় মাউন্ট করা ড্রাইভগুলি ছেড়ে যাওয়ার ঝুঁকিও বেড়ে যায়৷
ডিফল্ট সময়সীমা হ্রাস করা
90 সেকেন্ডের ডিফল্ট অপেক্ষা অনেক লিনাক্স ব্যবহারকারীদের জন্য ভারসাম্য রক্ষা করে, বিশেষ করে যারা পুরানো হার্ডওয়্যার ব্যবহার করে, যেহেতু বেশিরভাগ পরিষেবার জন্য তাদের পরিষ্কারের রুটিন শেষ করার জন্য এটি যথেষ্ট দীর্ঘ। যাইহোক, আধুনিক ল্যাপটপ বা ডেস্কটপ সিস্টেম চালিত ব্যবহারকারীদের জন্য, 90 সেকেন্ড অতিরিক্ত অনুভব করতে পারে।
কারণ যাই হোক না কেন, আপনি সিস্টেম কনফিগারেশন ফাইলটি টুইক করতে পারেন এবং সিস্টেমডকে অসমাপ্ত পরিষেবাগুলিকে তাদের কাজগুলি সম্পূর্ণ করার জন্য নির্দিষ্ট সংখ্যক সেকেন্ড দেওয়ার জন্য বলে সময় শেষ করতে পারেন৷
শুরু করতে, আপনার টার্মিনাল চালু করুন এবং সিস্টেম কনফিগারেশন ফাইল সম্পাদনা করতে আপনার পছন্দের পাঠ্য সম্পাদক ব্যবহার করুন:
sudo nano /etc/systemd/system.conf
পরবর্তী, টাইমআউট ভেরিয়েবলটি সনাক্ত করুন। আপনি প্রচুর পাঠ্য দেখতে পাবেন, যা আপনার সিস্টেমের জন্য বিশ্বব্যাপী সেটিংস প্রতিনিধিত্ব করে। #DefaultTimeoutStopSec=90s এর অনুরূপ একটি লাইন খুঁজুন . লাইনের শুরুতে হ্যাশ চিহ্নের অর্থ হল এটি মন্তব্য করা হয়েছে বা অক্ষম করা হয়েছে। সিস্টেমটি বর্তমানে তার অভ্যন্তরীণ ডিফল্ট ব্যবহার করছে, যা 90 সেকেন্ড হতে হবে।
মানটি পরিবর্তন করতে, প্রথমে লাইনটি সক্রিয় করতে হ্যাশ চিহ্নটি সরান, তারপর আপনার পছন্দের উপর ভিত্তি করে 90 সেকেন্ডকে একটি সংক্ষিপ্ত মেয়াদে পরিবর্তন করুন৷
সতর্কতা :এই মানটি 0 তে সেট করবেন না৷ এটিকে 0 তে সেট করা একটি অসীম সময়সীমা তৈরি করে, যার অর্থ প্রক্রিয়াটি বন্ধ হওয়ার জন্য সিস্টেমটি চিরকাল অপেক্ষা করবে৷ এটা আমরা যা চাই তার বিপরীত। একটি মধ্য-পরিসরের মান (20-30s) অনেক ব্যবহারকারীর জন্য একটি ব্যবহারিক আপস৷
একবার আপনি সম্পন্ন হলে, সংরক্ষণ করুন এবং সম্পাদক থেকে প্রস্থান করুন। পরিবর্তনগুলি প্রয়োগ করতে, আপনাকে সাধারণত রিবুট করতে হবে। যেহেতু শাটডাউনের সময় সমস্যাটি ঘটে, আপনি শেষবারের মতো দীর্ঘ অপেক্ষা দেখতে পারেন। পরবর্তী বুটের পরে, নতুন দ্বিতীয় সীমা কার্যকর হবে৷
দ্রষ্টব্য :কিছু ক্ষেত্রে, আপনাকে #DefaultDeviceTimeoutSec=90s সক্ষম করতে হতে পারে এটি কাজ করার জন্যও।
যখন সময়সীমা একটি সমস্যা নির্দেশ করতে পারে
বেশিরভাগ ক্ষেত্রে, একটি স্টপ জব টাইমআউট স্বাভাবিক আচরণ। যাইহোক, এটি কখনও কখনও একটি অন্তর্নিহিত সমস্যা নির্দেশ করতে পারে, বিশেষ করে যদি একই পরিষেবা বারবার বন্ধ করতে বিলম্ব হয়। একটি নেটওয়ার্ক মাউন্ট পৌঁছানো যায় না, একটি ডেমন ভুল কনফিগার করা হতে পারে, বা একটি পরিষেবা শাটডাউন সংকেতগুলিতে সঠিকভাবে প্রতিক্রিয়া নাও হতে পারে৷
আপনি যদি শাটডাউনগুলি সেকেন্ডের পরিবর্তে মিনিট সময় নিতে দেখেন, বা প্রতিবার একই পরিষেবার সময় শেষ হয়ে যাচ্ছে, তবে এটি তদন্ত করার মতো। মাঝে মাঝে বিলম্বগুলি সাধারণত ক্ষতিকারক নয়, তবে সামঞ্জস্যপূর্ণগুলি পরামর্শ দেয় যে কিছু মনোযোগ দেওয়া দরকার৷
বিলম্বের জন্য পরিষেবাটি সনাক্ত করতে, একটি ধীর বন্ধ থেকে পুনরায় বুট করার পরে লগগুলি পরীক্ষা করুন:
journalctl -b -1 -e
এই কমান্ডটি পূর্ববর্তী বুট থেকে লগ প্রদর্শন করে এবং শেষ পর্যন্ত লাফ দেয়। আপনি সতর্কতা, টাইমআউট বার্তা, বা পরিষেবাগুলি দেখতে উপরে স্ক্রোল করতে পারেন যা সিস্টেম জোর করে বন্ধ করেছে৷
এছাড়াও, আপনি সতর্কতা স্তরের বার্তাগুলি দেখে জিনিসগুলিকে সংকুচিত করতে পারেন:
journalctl -b -1 -p warning
আরেকটি দরকারী চেক হল এই Systemd analyze কমান্ডটি চালানো:
systemd-analyze blame যদিও এই কমান্ডটি স্টার্টআপের সময়গুলিতে ফোকাস করে, তবে যে পরিষেবাগুলি শুরু হতে ধীর হয় সেগুলি প্রায়শই শাটডাউনের সময় একই রকম আচরণ করে। কিছু অন্যান্য সাধারণ পরিষেবা যা স্টপ জব বার্তাগুলিকে ট্রিগার করে তার মধ্যে রয়েছে:
- নেটওয়ার্ক পরিষেবাগুলি
- দূরবর্তী ফাইল সিস্টেম যেমন NFS বা SMB
- ডাটাবেস সার্ভার
- কন্টেইনার এবং ভার্চুয়াল মেশিন ম্যানেজার
- বাহ্যিক ড্রাইভ, এবং অটোমাউন্ট ইউনিট
নেটওয়ার্ক-ভিত্তিক মাউন্টগুলি বিশেষ করে বিলম্বের প্রবণ হয় যদি সংযোগটি অস্থির হয় বা আর উপলব্ধ না হয়। এছাড়াও, শাটডাউন টাইমআউট কমিয়ে শাটডাউনগুলি দ্রুত অনুভব করতে পারে, তবে এটি অন্তর্নিহিত সমস্যার সমাধান করে না। যদি একটি পরিষেবা ক্রমাগতভাবে শাটডাউনে বিলম্ব করে, তবে মূল কারণটি মোকাবেলা করলে দীর্ঘমেয়াদী ভাল ফলাফল পাওয়া যায়৷
চূড়ান্ত চিন্তা
লিনাক্স আপনাকে আপনার সিস্টেমের উপর একটি উচ্চ স্তরের নিয়ন্ত্রণ দেয়, যার মধ্যে একগুঁয়ে পরিষেবাগুলি বন্ধ হওয়ার জন্য এটি কতক্ষণ অপেক্ষা করে। আপনি ব্যাকগ্রাউন্ড অ্যাপ্লিকেশনগুলি পরিচালনা করতে পারেন এবং শাটডাউন এবং বুট সময় উভয়ের উন্নতি করতে অপ্রয়োজনীয় পরিষেবাগুলি অক্ষম করতে পারেন৷