যে কমান্ড লাইনে --errors-to-stderr আছে, সেটি অভিযোগের মতো দেখায়, কিন্তু অভিযোগ নয়। শব্দটি একটি অপশনের নামের অংশ, যেমন একটি লগ ফাইলের নাম ফাইলে কী আছে সে সম্পর্কে কিছুই বলে না। কোনো কনফিগারেশন বদলানোর আগে আপনি আসলে কী পড়ছেন তা নির্ধারণ করুন।

সিদ্ধান্তের তিনটি শাখা: লাইনটি নিজেই লঞ্চ, লাইনটি প্রোগ্রামের ছাপানো আউটপুট, অথবা লাইনটি এমন লেখা যা VPN শুরুর আগে কোনো র্যাপার প্রতিধ্বনি করেছে। প্রতিটি শাখা ভিন্ন জায়গায় দেখার দিকে ইঙ্গিত করে, এবং তাদের একটিই VPN-এর নিজের বার্তা।

অপশনের নাম কোনো স্ট্যাটাস বার্তা নয়

Community OpenVPN-এর জন্য --errors-to-stderr ত্রুটির আউটপুট স্ট্যান্ডার্ড আউটপুটের বদলে স্ট্যান্ডার্ড এরর-এ পাঠায়। এটি একটি স্ট্রিম পছন্দ, তীব্রতার ফিল্টার নয়, এবং এটি কোনো ত্রুটি তৈরি করে না। পরে --log বা --log-append একই বার্তাগুলো একটি ফাইলে পাঠাতে পারে, তাই ফ্ল্যাগের প্রভাব কমান্ডের বাকি অংশের উপর নির্ভর করে। আপস্ট্রিম লগিং রেফারেন্স সেই ক্রম নির্ধারণ করে।

তাই ফ্ল্যাগের উপস্থিতি জানায় ত্রুটিগুলো কোথায় যাবে। এটি জানায় না যে কোনো ত্রুটি ঘটেছে।

লঞ্চ লাইন নাকি প্রক্রিয়ার আউটপুট

লেখাটি কে ছেপেছে তা জিজ্ঞাসা করে শুরু করুন। একটি সার্ভিস ইউনিট, একটি অ্যাপ্লিকেশন বান্ডল বা একটি শেল র্যাপার প্রায়ই VPN প্রক্রিয়া কিছু লেখার আগেই সম্পূর্ণ argv প্রতিধ্বনি করে। শুধু একটি অংশ দেখলে সেই প্রতিধ্বনি স্ট্যাটাস লাইন থেকে আলাদা করা যায় না।

লাইনটি যদি র্যাপার থেকে আসে, তাহলে VPN এখনো চলে নি এবং জানানোর মতো কিছু নেই। আউটপুটে আরও নিচে টাইমস্ট্যাম্প বা সাবসিস্টেমের নামযুক্ত প্রথম বার্তাটি খুঁজুন।

লাইনটি যদি VPN প্রক্রিয়া থেকে আসে, তবুও সেটি কেবল আহ্বান। OpenVPN নিজের কমান্ড লাইন ত্রুটি হিসেবে ছাপায় না, এবং গুরুত্বপূর্ণ বার্তাগুলো তার পরে আসে।

প্রক্রিয়া ও তার ফলাফল খুঁজুন

প্রক্রিয়াটি এখনো চলছে কি না তা নির্ধারণ করুন। যে ক্লায়েন্ট চালু আছে এবং আবার চেষ্টা করছে, সে সঙ্গে সঙ্গে বেরিয়ে যাওয়া ক্লায়েন্টের চেয়ে সম্পূর্ণ আলাদা দেখায়, আর একই কমান্ড লাইন দুটির আগেই থাকে।

তারপর প্রক্রিয়াটির মালিক যে উপাদান, তার মাধ্যমে ফলাফল পড়ুন। systemd-এর অধীনে সেটি ইউনিটের জার্নাল; ডেস্কটপ অ্যাপে সেটি অ্যাপের নিজের লগ বা কনসোল। এক্সিট স্ট্যাটাস ও শেষ বার্তাগুলো সেই প্রশ্নের উত্তর দেয় যার দিকে অপশনের নাম কেবল ইঙ্গিত করে।

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

কখন ফ্ল্যাগ তার জায়গা পাওয়ার যোগ্য

ফ্ল্যাগ তার জায়গা পাওয়ার যোগ্য যখন stdout ডেটা বহন করে এবং ত্রুটি তা দূষিত করতে পারবে না, অথবা যখন কোনো র্যাপার দুই স্ট্রিম আলাদাভাবে ধরে রাখে। টার্মিনালে একটি ফোরগ্রাউন্ড সেশনে দুই স্ট্রিমই আপনার সামনে আসে। সেক্ষেত্রে পার্থক্য খুব কমই আপনার কাজ বদলায়।

আশেপাশের স্ক্রিপ্ট যদি বিভাজনের উপর নির্ভর করে, তবে এটি রাখুন। নামটি উদ্বেগজনক দেখায় বলে এটি সরানো বার্তাগুলো কোথায় দেখা যাবে তা বদলায় এবং আর কিছুই ঠিক করে না।

কী বদলাবেন না

অপশনটিকে মেরামতের ধাপ হিসেবে ধরবেন না। এটি মুছে দিলে সার্টিফিকেট, রুট বা প্রমাণীকরণ ব্যর্থতা ঠিক হবে না।

আহ্বানে --config stdin থাকলে কনফিগারেশনটি স্ট্যান্ডার্ড ইনপুট দিয়ে দেওয়া হচ্ছে। ফাইলটি কীভাবে সরবরাহ করা হয় সে সম্পর্কে এটি আলাদা সিদ্ধান্ত। একবারে একটি জিনিস বদলান, এবং দ্বিতীয়টি বদলানোর আগে আসল বার্তাটি আবার পড়ুন।

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