আমি একটি ডেবিয়ান সিস্টেমের জন্য একটি ডেমন প্রক্রিয়া লিখছি C
যাতে একটি ইউনিক্স ডোমেন সকেট ব্যবহার করা হয় ।
যদি ডেমন প্রসেসের ওয়ার্কিং ডিরেক্টরিটি মূল ডিরেক্টরি হয় তবে ফাইল সিস্টেমে সকেট স্থাপনের জন্য কোনও আইডিয়োম্যাটিক ডিরেক্টরি রয়েছে?
আমি একটি ডেবিয়ান সিস্টেমের জন্য একটি ডেমন প্রক্রিয়া লিখছি C
যাতে একটি ইউনিক্স ডোমেন সকেট ব্যবহার করা হয় ।
যদি ডেমন প্রসেসের ওয়ার্কিং ডিরেক্টরিটি মূল ডিরেক্টরি হয় তবে ফাইল সিস্টেমে সকেট স্থাপনের জন্য কোনও আইডিয়োম্যাটিক ডিরেক্টরি রয়েছে?
উত্তর:
এগুলি সাধারণত এর /tmp
একটি উপ-ডিরেক্টরিতে পাওয়া যায় । নোট করুন যে /tmp
শাটডাউন করার সময় সমস্ত কিছু মুছে ফেলা সাপেক্ষে - এটি অগত্যা মুছে ফেলা হয় না, কেবল সাবধান হন যে এটি হতে পারে , তাই আপনি যদি এটি ব্যবহার করেন তবে প্রতিবার আপনার উপ-ডিরেক্টরি তৈরি করতে হবে কিনা তা পরীক্ষা করে দেখুন। /tmp
বিশ্ব পাঠযোগ্য , যেহেতু অনুমতিগুলির মাধ্যমে অ্যাক্সেসকে সীমাবদ্ধ রাখতে চাইলে আপনি একটি সাব-ডিরেক্টরি ব্যবহার করতে চাইবেন ।
/run
এবং /var/run
(যা একসাথে প্রতিযোগিতায় থাকতে পারে) একইভাবে ব্যবহৃত হয়, তবে এগুলি সাধারণত tmpfs ফাইল সিস্টেম হিসাবে মাউন্ট করা হয় - যার অর্থ এগুলি বুটে তৈরি হয়েছিল এবং মেমরিতে থাকে , ডিস্কে নয় (সুতরাং এটি ডাম্প করার জায়গা হিসাবে ব্যবহার করবেন না) প্রচুর পরিমাণে ডেটা)। রানটাইম সকেটের জন্য, এটি সম্ভবত একটি ভাল পছন্দ।
মনে রাখবেন যে, /run
, এবং অন্যান্য ডিরেক্টরি সব এখানে উল্লেখ ছাড়া /tmp
, শুধুমাত্র শিকড় দ্বারা লিখনযোগ্য হয়। একটি সিস্টেম প্রক্রিয়াটির জন্য, এটি ঠিক আছে, তবে যদি অ্যাপ্লিকেশনটি কোনও সুবিধামুক্ত ব্যবহারকারী দ্বারা চালিত করা হয় তবে আপনি হয় /tmp
কোথাও একটি স্থায়ী ডিরেক্টরি ব্যবহার করতে বা সেটির জন্য অনুমতি সেট করতে চান বা ব্যবহারকারীর OME হোমমে কোনও অবস্থান ব্যবহার করতে চান।
ইনস্টলেশন চলাকালীন /usr/share
(বা /usr/local/share
) একটি ডিরেক্টরি তৈরি করা সম্ভব । সেখানে থাকা ডিরেক্টরিগুলি এবং সামগ্রীগুলি বুটগুলিতে সম্ভাব্যভাবে কাটা হয় না কারণ সেগুলি হবে /tmp
বা /run
। যাইহোক, জর্ডানম মন্তব্যগুলিতে উল্লেখ করে, /usr
কেবল পঠনযোগ্যভাবে মাউন্ট করা যেতে পারে এবং লিনাক্স ফাইল সিস্টেমের ক্রমবিন্যাসের নির্দেশিকা এটি প্রতিফলিত করে । অবশ্যই, কেবলমাত্র আপনার অ্যাপ্লিকেশনটি ইনস্টল হওয়ার পরে এটি কেবল পঠনযোগ্য নয়, সুতরাং আপনি যদি সেখানে সেখানে সকেট তৈরি করতে স্বাচ্ছন্দ্য বোধ করেন তবে আপনি এটি রেখে দিতে পারেন এবং পরে এটি ব্যবহার করতে পারেন (আপনি এখনও সকেটে লিখতে সক্ষম হবেন যদিও ফাইলটি কেবল পঠনযোগ্য)।
আপনি যদি বুটগুলি জুড়ে কোথাও অবিচল থাকতে চান যা কেবল পঠনযোগ্য মাউন্ট হবে না, তবে /etc
এটি মোটামুটি নিরাপদ বাজি, কারণ এটি প্রায়শই সিস্টেম-ব্যাপী কনফিগারেশন এবং পুনরায় কনফিগারেশনের জন্য ব্যবহৃত হয়। OTOH, এমন সিস্টেমগুলি পাওয়া সম্ভব যেখানে সম্পূর্ণ রুট ফাইল সিস্টেমের অন্তর্ভুক্ত ডিভাইসটি কেবল পঠনযোগ্য (যেমন, এম্বেড করা সিস্টেম) থাকে / টিএমপি সহ / অন্য ডিভাইসে চালিত হয় (সম্ভবত: মেমরির tmpfs)। সুতরাং দুটি শক্তিশালী কৌশল বলে মনে হবে:
অ্যাপ্লিকেশন ইনস্টল হওয়ার পরে সকেটটিকে স্থায়ী স্থানে ইনস্টল করুন।
রানটাইম /run
বা /var/run
এ সময়ে একটি ডিরেক্টরি তৈরি করুন এবং সকেটটি সেখানে রাখুন।
কেবল একই কাজটি করুন /tmp
।
প্রথমটির সুবিধাটি হ'ল যাই হোক না কেন, একবার অ্যাপ্লিকেশন ইনস্টল হয়ে গেলে আপনার ব্যবহারের জন্য একটি সকেট থাকবে। দ্বিতীয়টির সুবিধাটি হ'ল এটি বুদ্ধিমান প্রোগ্রামিংয়ের পক্ষে আরও উপযুক্ত হতে পারে। তৃতীয়টির সুবিধা হ'ল এটির জন্য সুপারভাইজার সুবিধাগুলি প্রয়োজন হয় না। আপনি যদি পরে নিজের মত পরিবর্তন করেন তবে একটি বাস্তবায়ন থেকে অন্যটিতে চলে যাওয়া সহজ হওয়া উচিত।
অবশেষে, ব্যাচইএক্স-এর হিসাবে , আপনার ডিফল্ট পছন্দটিকে পিছনে রেখে কমপক্ষে আপনার জন্য এটির জন্য একটি কনফিগারেশন বিকল্প সরবরাহ করা উচিত।
/run
বা /var/run
প্রায়শই মূল প্রক্রিয়াগুলির জন্য ব্যবহৃত হয়।
/tmp
। আমি এটিকে সম্পাদনা করব
/usr
কেবল পঠন হিসাবে মাউন্ট করা যেতে পারে। রানটাইমের সময় ফাইলগুলি কখনই তৈরি করা উচিত নয়। অন্যান্য পরামর্শ ভাল।
/tmp/.APPNAME/.APPSOCK
কারণ ডেমনের অবিরাম ডেটার প্রয়োজন হয় না।
/tmp
এবং এর মধ্যে আরেকটি মূল পার্থক্য /run
হ'ল কেবল রুটটিতে লেখার অনুমতি রয়েছে /run
।