nordvpn চালিয়ে অপ্রাপ্য ডেমন সম্পর্কে বার্তা পাওয়া একটি সংকীর্ণ অভিযোগ, যা সাধারণত তখনই আসে যখন আপনি ইতিমধ্যেই দেরি করে ফেলেছেন। এটি টানেল কাজ করছে কি না সে সম্পর্কে কিছুই বলে না, কারণ CLI কেবল একটি সামনের অংশ: এটি একটি Unix সকেটের মাধ্যমে পটভূমির প্রক্রিয়ার সঙ্গে কথা বলে, আর বার্তাটির অর্থ হলো সেই কথোপকথন হয়নি। কমান্ড থেকে বাইরের দিকে হাঁটুন এবং প্রথম যে বিষয়টি মিথ্যা প্রমাণিত হয় সেখানেই থামুন।

যেখান থেকে ত্রুটি দেখা যায় সেখান থেকেই শুরু করুন

এখানে দুটি প্রক্রিয়া জড়িত, আর এদের গুলিয়ে ফেলাই বিষয়টিকে রহস্যময় করে তোলে। ডেমন টানেলের মালিক এবং /run/nordvpn/-এর নিচে একটি সকেটে শোনে। আপনি যে কমান্ড লিখেছেন সেটি নিজে ইন্টারফেস স্পর্শ না করে ওই সকেটে সংযোগ করে।

সকেট অনুপস্থিত থাকলে বা সংযোগ প্রত্যাখ্যান করলে, CLI-এর জিজ্ঞাসা করার কেউ থাকে না, তাই এটি একই অভিযোগের ব্যবহারকারী-ডেমন বা সিস্টেম-ডেমন সংস্করণ জানায়। ওই সংস্করণগুলোর একটি সরাসরি পথটির নাম বলে, আর সেটিই পুরো আলাপের সবচেয়ে কাজের বাক্য।

অন্য কিছুর আগে unit যাচাই করুন

সার্ভিস ম্যানেজারকে জিজ্ঞাসা করুন ডেমন চলছে কি না, না চললে এক ধাপে এটি চালু ও সক্রিয় করুন:

systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version

unit থাকলেও নিষ্ক্রিয় থাকলে, enable --now একই সঙ্গে এটি চালু করে এবং পরের বুটের ব্যবস্থা করে। unit না থাকলে, প্যাকেজটি আপনি যা ভাবছেন তা নয়, আর ইনস্টল করা নামটি আপনার নোটের নামের চেয়ে বেশি গুরুত্বপূর্ণ। যতক্ষণ না আপনি সেই লেবেলের অধীনে কখনো ইনস্টল না হওয়া একটি সার্ভিস সক্রিয় করতে কুড়ি মিনিট ব্যয় করেন, ততক্ষণ এটি একটি খুঁটিনাটি পার্থক্য মনে হয়। যা আছে তা পড়ুন, তারপর সেই অনুযায়ী কাজ করুন।

unit ফাইলগুলো তালিকাভুক্ত করলে এক কমান্ডেই তা মিটে যায়, আর ইনস্টলেশন সম্পর্কে কোনো সিদ্ধান্তে আসার আগে এটি করা উচিত:

systemctl list-unit-files 'nordvpn*'
service --status-all

রিলিজগুলো সার্ভিসটিকে একাধিক unit নামে সরবরাহ করেছে, তাই যে বিল্ড nordvpn এর বদলে nordvpnd ব্যবহার করে সেটি এই ত্রুটির নিখুঁত অনুলিপি তৈরি করবে, অথচ ঠিক পাশেই একটি সুস্থ সার্ভিস চলবে।

সকেট ও তার গ্রুপই প্রবেশাধিকার নির্ধারণ করে

ডেমন চললেও অনুমতির কারণে সংযোগ প্রত্যাখ্যাত হতে পারে। ইনস্টলার একটি nordvpn গ্রুপ তৈরি করে, আর সকেট সেই অনুযায়ী মালিকানাভুক্ত হয়, তাই ওই গ্রুপের বাইরের ব্যবহারকারী প্রত্যাখ্যাত হন যদিও সার্ভিস পুরোপুরি সুস্থ।

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

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

সকেটের মালিকানা নিজেই ওই যাচাইয়ের দ্বিতীয় অর্ধেক। সকেটের গ্রুপের সঙ্গে CLI চালানো শেলে দেখানো গ্রুপগুলো মিলিয়ে দেখুন, আর অনুমতির প্রশ্নটি পুনরায় ইনস্টল না করে এক ধাপেই উত্তর পায়:

ls -l /run/nordvpn
id

চলমান প্রক্রিয়া সঠিক সকেটের প্রমাণ নয়। অন্য ম্যানেজার চালু করা ডেমন, বা ভিন্ন নামের সকেট বেঁধে রাখা পুরোনো প্যাকেজ, একই রকমভাবে রিপোর্ট করে। ডিরেক্টরি তালিকা এক লাইনেই ওই ঘটনাগুলো আলাদা করে, তাই এটি পুনরায় ইনস্টলের চেয়ে ভালো।

পুরোনো প্যাকেজিংয়ে ব্যবহারকারী-প্রতি প্রক্রিয়া

কিছু প্যাকেজিং লগইন করা ব্যবহারকারীর প্রেক্ষাপটে একটি দ্বিতীয় প্রক্রিয়া চালায়, যা ডেস্কটপ ইন্টিগ্রেশন খুঁজে পেতে আশা করে। যদি সিস্টেম init স্ক্রিপ্ট ওই অ্যাকাউন্টে না নেমে এটি চালু করে, তবে CLI এমন ডেমন খোঁজে যার মালিক কোনো সেশন নয়।

systemd-বিহীন init-এ নথিভুক্ত বিন্যাসটি ভূমিকা ভাগ করে: সিস্টেম সার্ভিস একটি নামে চলে, আর ব্যবহারকারীর দিকের প্রক্রিয়া chpst -u <user> দিয়ে লক্ষ্য অ্যাকাউন্টের অধীনে চলে। অন্যটি ধরে নেওয়া কোনো স্টার্টআপ স্ক্রিপ্ট যোগ করার আগে আপনার ইনস্টলেশন আসলে কোন বিন্যাস ব্যবহার করে তা যাচাই করুন।

কীভাবে বুঝবেন আপনি শেষ করেছেন

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

sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version

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

সকেট এখনো অনুপস্থিত থাকলে, কেন এটি বন্ধ হলো তা দেখতে unit জার্নাল পড়ুন, তারপর যাচাই করুন /run/nordvpn আছে কি না এবং সার্ভিস অ্যাকাউন্ট সেখানে লিখতে পারে কি না। যে প্রক্রিয়া উঠে আসে আর সঙ্গে সঙ্গে মারা যায়, সে তার কারণ ওই জার্নালে লিখে রাখে, আর এক লাইন পড়া পুনরায় ইনস্টল করার চেয়ে দ্রুত।

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