প্রক্সি চালু থাকা অবস্থায় শাটডাউন আটকে যাওয়া খুব কমই VPN-এর বাগ, এমনকি যখন VPN-ই স্ক্রিনে দেখা শেষ জিনিস। প্রক্সির পেছনের অ্যাপ্লিকেশনগুলো এখনও এমন একটি পথের জন্য অপেক্ষা করছে যা এইমাত্র হারিয়ে যাবে, আর টানেলের মালিক যে ইউনিট তার কাছে এখনও তা বন্ধ করার অনুরোধ যায়নি। ধীর সেবার মতো যা দেখায় তা সাধারণত ক্রমের সমস্যা। যেকোনো টাইমআউট পরিবর্তনের চেয়ে ক্রম ঠিক করা এগুলো বেশি সমাধান করে।

বাইরের দিকে উল্টো ক্রমে কাজ করুন: আগে কনজিউমার, তারপর প্রক্সি, তারপর টানেল, প্রত্যেকটিকে বন্ধ করে যে উপাদানটি তা চালু করেছিল।

কিছু বন্ধ করার আগে ইউনিটগুলো তালিকাভুক্ত করুন

স্বাভাবিক এক রানের সঙ্গে জড়িত অ্যাপ্লিকেশন ইউনিট, প্রক্সি ইউনিট ও VPN-মালিক লিখে রাখুন। নিজস্ব টিয়ারডাউন আছে এমন যেকোনো রিজলভার বা হেল্পার যোগ করুন, কারণ রাত দুইটায় মানুষ ঠিক এগুলোই ভুলে যায়। সেই তালিকা ছাড়া আপনি যে প্রথম স্টপ কমান্ডটি লেখেন তা এলোমেলোভাবে একটি বলি বেছে নেয়।

নাম দুর্বল প্রমাণ। একটি ব্যবহারকারী প্রক্সি, একটি সিস্টেম প্রক্সি এবং অন্য অ্যাকাউন্টের টানেল একই নাম ভাগ করতে পারে অথচ তাদের জীবনচক্র সম্পূর্ণ অসম্পর্কিত।

কাজ শেষ করুন, তারপর কনজিউমার বন্ধ করুন

পরিকল্পিত স্টপ অ্যাপ্লিকেশন দিয়ে শুরু হয়: এটিকে তার অনুরোধগুলো শেষ করতে বা বাতিল করতে দিন, তারপর তার সেবা ইউনিটের মাধ্যমে প্রক্সি বন্ধ করুন। টানেল চলে যাওয়ার পরেও অ্যাপ্লিকেশনটি চলতে থাকলে তা সচেতনভাবে ব্যবস্থা করুন, বরং এমন একটি রুটে ঝুলিয়ে রাখবেন না যা এইমাত্র বিলীন হবে।

স্টপের সময় যে অনুরোধগুলো চলমান ছিল সেগুলো রেকর্ডে থাকা উচিত, কারণ পরের বার চালু হলে পুনঃপ্রচেষ্টার ঝড় সেখান থেকেই আসে।

ExecStop আর ExecStopPost আলাদা যন্ত্র

ExecStop= হলো সমকালীন স্টপ অপারেশন; ExecStopPost= হলো পরিষ্কার করা যা ব্যর্থ স্টার্টের পরেও চলে। যে স্টপ কমান্ড কেবল একটি প্রক্রিয়াকে সংকেত পাঠিয়ে ফিরে আসে, তা systemd-কে এগিয়ে যেতে দেয় যখন কনজিউমার এখনও ফ্লাশ করছে। যা সব অবস্থাতেই ঘটতে হবে তা পোস্ট ভ্যারিয়েন্টে, আর যা স্টপ আটকাতে হবে তা সমকালীন ভ্যারিয়েন্টে। প্যাকেজ ফাইল জায়গায় সম্পাদনা না করে কার্যকর ইউনিট ও তার ড্রপ-ইনগুলো পরীক্ষা করুন।

নির্ভরতা গ্রাফ স্টপ কাজগুলো সাজায়। এটি অ্যাসিঙ্ক্রোনাস স্ক্রিপ্টকে সমকালীন করে না, আর দূরের অ্যাপ্লিকেশনকে তার ডেটা কমিট করায় না।

স্টপের সীমা দিন এবং সেই সীমার দাম জানুন

TimeoutStopSec= স্টপ কমান্ড ও সেবার নিজের সমাপ্তি—দুটোরই সীমা দেয়, আর সীমা শেষ হলে systemd জোরপূর্বক হত্যায় উঠে যায়। অ্যাপ্লিকেশনের প্রকৃত ফ্লাশ আচরণ থেকে মানটি বেছে নিন, আর তা ঘটলে কী হারাতে পারে তা লিখে রাখুন। মেশিন যেন দ্রুত বন্ধ হয় তাই বেছে নেওয়া সংখ্যা আসলে ছদ্মবেশে ডেটা-ক্ষতির সেটিং।

স্টপ এখনও ধীর হলে ইউনিট, তার চাইল্ড প্রসেস, জার্নালের ব্যবধান ও টাইমআউটের ফল ধরে রাখুন। প্রতিটি টাইমআউট ছোট করা বা বিস্তৃত হত্যার দিকে হাত বাড়ানো—এভাবেই পরিচ্ছন্ন শাটডাউন পরের বুটে নষ্ট অবস্থায় পরিণত হয়।

মালিকের মাধ্যমে সংযোগ বিচ্ছিন্ন করুন, তারপর তিনটি কেস পরীক্ষা করুন

কনজিউমার বন্ধ হলে যে ম্যানেজার টানেলের মালিক তাকে সংযোগ বিচ্ছিন্ন করতে বলুন: systemd ইনস্ট্যান্স, NetworkManager-এর সক্রিয় সংযোগ, বা ভেন্ডর সেবা। সম্পর্কহীন OpenVPN প্রসেস হত্যা করা অগত্যা পথটি সরবরাহকারী সেশনটি সরায় না, আর রিস্টার্ট নীতির প্রক্সি আপনার পথটি ভেঙে ফেলার সময় একটি অনুরোধ আবার তৈরি করতে পারে। শুরু করার আগে সেই নীতিটি পরিকল্পিত স্টপের সঙ্গে সমন্বয় করুন।

সাধারণ স্টপ, সক্রিয় অনুরোধসহ স্টপ, এবং এমন স্টপ যেখানে টানেল প্রথমে ব্যর্থ হয়—তিনটিই পরীক্ষা করুন। সময়সীমাযুক্ত পুনরাবৃত্তিযোগ্য ক্রম একবার কাজ করা দ্রুত শাটডাউনের চেয়ে ভালো।

সম্পর্কিত নিবন্ধ