ফোল্ডারগুলি কীভাবে প্রতিটি সংস্করণে / ভার / চালিত হয়


60

সাম্প্রতিক উবুন্টাসে (বিশেষত, আমার সবচেয়ে বেশি আগ্রহী 12.04) টিএমপিএফস /var/run, এবং সুতরাং আমি ধরে নিই যে এটি প্রতিটি রিবুট দিয়ে খালি শুরু হয়।

তবুও, আমি সেখানে কিছু ফোল্ডার দেখতে পাই, পছন্দ করি /var/run/mysqldএবং আরও অনেকগুলি। এই ফোল্ডারগুলি প্রতিটি রিবুটে কীভাবে তৈরি হয়েছিল? এখানে কি কোনও টেম্পলেট ফোল্ডার রয়েছে যা অনুলিপি করেছে /var/run/(এবং যদি তাই হয় তবে কোন স্ক্রিপ্টটি এতে করে) বা প্রতিটি ফোল্ডার mkdirআলাদাভাবে সম্পাদিত হয়েছে বা কী?

সম্পাদনা:
দয়া করে, জবাব দিন না /var/runযা অবিচল, বা যা /runস্থির থাকে। কারণ এটি না।

এমনকি এটি যদি আপনার সিস্টেমে থাকে তবে এটি নিয়মিত 12.04 তে হয় না।


হুম, সুতরাং আমি 50 জন প্রতিনিধি নিয়ে যাচ্ছি। দুটি উত্তরের একটিতে যা নষ্ট হয়েছে তা উভয়ই স্পষ্টতই স্পষ্টতই ভুল ....
Sandman4

কেউ, দয়া করে
যেকোন

উত্তর:


82

( উবুন্টুর চলমান বিকাশের সাথে উত্তরটি রাখেনি বলে জানানোর জন্য @ জুলাকিস এবং সার্ভারফল্টের একটি উত্তরকে ধন্যবাদ জানাই ।)

15.04systemd হিসাবে গ্রহণের ফলে এখন অস্থায়ী ফাইল এবং ডিরেক্টরি তৈরির জন্য একটি কেন্দ্রিয়করণ ব্যবস্থা রয়েছে। একটি সেবা এই পদ্ধতি ব্যবহার করতে অপসারণ করতে পারেন তবেই নিজস্ব প্রারম্ভে লিপিতে কমান্ড এবং এর পরিবর্তে একটি স্থান ফাইল , অথবা উবুন্টু সেবা সর্বশেষ অপশনটি পছন্দ করা আপাতভাবে বিদ্যমান সঙ্গে। উদাহরণস্বরূপ, এখন আমার সিস্টেমে রয়েছে:mkdir.conf/etc/tmpfiles.d/run/tmpfiles.d/usr/lib/tmpfiles.d

$ egrep -r /var/run /usr/lib/tmpfiles.d

/usr/lib/tmpfiles.d/var.conf:L /var/run - - - - ../run
/usr/lib/tmpfiles.d/sudo.conf:d /var/run/sudo 0711 root root
/usr/lib/tmpfiles.d/sudo.conf:D /var/run/sudo/ts 0700 root root
/usr/lib/tmpfiles.d/postgresql.conf:d /var/run/postgresql 2775 postgres postgres - -
/usr/lib/tmpfiles.d/sshd.conf:d /var/run/sshd 0755 root root
/usr/lib/tmpfiles.d/screen-cleanup.conf:d /var/run/screen 0775 root utmp

dমানে যদি এটি ইতিমধ্যেই বিদ্যমান নেই সংকলন তৈরি করা, পরে সেই পথ, এবং বাকি অনুমতি, ব্যবহারকারী, এবং গ্রুপ আছে। সংশ্লিষ্ট পরিষেবাগুলি আরম্ভ হয়েছে কিনা তা বিবেচনা না করেই এই ডিরেক্টরিগুলি তৈরি করা হবে।

সম্পূর্ণ ডকুমেন্টেশনের জন্য, দেখুন man tmpfiles.d


পুরানো প্রাক-সিস্টেমে উত্তর:

দেখে মনে হচ্ছে এগুলি পৃথক পরিষেবাদি দ্বারা গতিশীলভাবে তৈরি হয়েছে তারা শুরু করার সাথে সাথে:

$ sudo egrep -r 'mkdir.*/var/run' /etc

/etc/init.d/ssh:        mkdir /var/run/sshd
/etc/init.d/bind9:      mkdir -p /var/run/named
/etc/init.d/timidity:    mkdir -p /var/run/timidity
/etc/init.d/bzflag:                mkdir -p /var/run/bzflag
/etc/init.d/dns-clean:mkdir /var/run/pppconfig >/dev/null 2>&1 || true
/etc/init/winbind.conf: mkdir -p /var/run/samba/winbindd_privileged
/etc/init/dbus.conf:    mkdir -p /var/run/dbus
/etc/init/ssh.conf:    mkdir -p -m0755 /var/run/sshd
/etc/init/libvirt-bin.conf:     mkdir -p /var/run/libvirt
/etc/init/cups.conf:    mkdir -p /var/run/cups/certs

আমি বিশ্বাস করি এটিই মাইএসকিএলড পরিচালনা করে:

[ -d /var/run/mysqld ] || install -m 755 -o mysql -g root -d /var/run/mysqld
/lib/init/apparmor-profile-load usr.sbin.mysqld

man install বলে যে -d ফর্মটি "নির্দিষ্ট ডিরেক্টরিগুলির সমস্ত উপাদান তৈরি করবে"।


1
এটি সর্বদা ক্ষেত্রে বলে মনে হয় না: সার্ভারফল্ট
প্রশ্ন

ধন্যবাদ, জুলাকিস আমি কিছু সম্পাদনা করেছি এবং এই বৈশিষ্ট্যটির সাথে আপনার অভিজ্ঞতার ভিত্তিতে সেগুলি সঠিক কিনা তা জানার জন্য আমি তাদের প্রশংসা করব।
পল

1
আমার কাছে ভালই মনে হচ্ছে! আপনার উত্তর আপডেট করার জন্য ধন্যবাদ :)
জুলকিস

1
Egrep -r কমান্ডের জন্য আপভোট করুন। ফাইল অনুসন্ধানের মধ্যে একটি সন্ধান খুঁজছেন! :-)
নিক উডহ্যামস

5

নতুন tmpfs- মাউন্ট করা /runফোল্ডারটি udev, lvm এবং m دادm এর মতো প্রোগ্রামগুলি আরআরডি থেকে শাটডাউন অবধি রানটাইম ডেটা রাখার অনুমতি দেয়।

/var যে কোনও লিনাক্স / ইউনিক্স সিস্টেমের একটি স্ট্যান্ডার্ড ডিরেক্টরি - এটি "ভেরিয়েবল" এবং এটি এমন একটি জায়গা যেখানে প্রচুর লগ, কাহেস, কিন্তু প্রোগ্রাম ভেরিয়েবল সেটিংস ফাইল এবং এমনকি কিছু সিস্টেম কনফিগারেশন ডাটাবেস থাকে।

এর বেশিরভাগ জিনিসগুলি /varসিস্টেমের দ্বারা যথাযথভাবে পরিষ্কার করা এবং নিয়ন্ত্রণ করা উচিত। ভার্চুয়াল মেমোরির জন্য আপনার অদলবদলের ফাইলগুলিও এতে থাকে /varতাই এতে বিচলিত হন না। /var/runসক্রিয়ভাবে চলমান প্রক্রিয়া ডেমনগুলির প্রচুর স্থিতি এবং পরামিতি সম্পর্কিত তথ্যও রয়েছে।

এই ডিরেক্টরিটিতে বুট হওয়ার পরে সিস্টেমটির বিবরণ সম্পর্কিত সিস্টেম তথ্য রয়েছে। বুট প্রক্রিয়াটির শুরুতে এই ডিরেক্টরিতে থাকা ফাইলগুলি অবশ্যই সাফ (যথাযথ হিসাবে সরানো বা কাটা কাটা) করতে হবে। প্রোগ্রামগুলির একটি উপ-ডিরেক্টরি থাকতে পারে /var/run; এটি এমন প্রোগ্রামগুলির জন্য উত্সাহিত করা হয় যা একাধিক রান-টাইম ফাইল ব্যবহার করে।

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

স্টার্টআপ স্ক্রিপ্টগুলি সাধারণত সেগুলি ব্যবহারের আগে প্রয়োজনীয় ডিরেক্টরিগুলি তৈরি করে। আপনি যদি কোনও পিআইডি-ফাইল সঞ্চয় করতে চান তবে এটি /var/runসরাসরি রেখে দিন বা পিআইডি-ফাইল তৈরির আগে একটি ডিরেক্টরি তৈরি করুন। এটি ডেটা সঞ্চয় করার মতো জায়গা নয় যা পুনরায় বুটগুলি জুড়ে সেখানে থাকা দরকার।

সূত্র: পথের নাম এবং লিনাক্স সিস্টেম প্রশাসকের গাইড


5

যে কেউ এই থ্রেড জুড়ে আসে কারণ আপনি কীভাবে কোনও অ্যাপ্লিকেশনটি কনফিগার করতে পারেন তার সমাধান খুঁজছেন /var/runযাতে এটি ডিরেক্টরি তৈরি করে যাতে এটি মোজা বা পিড ফাইল বা যা কিছু সঞ্চয় করতে পারে ... এখানে একটি উদাহরণ রয়েছে। আমি এই থ্রেডটি পেরিয়ে এসেছি কারণ আমি মাইএসকিউএল মোজা ফাইলটি সঞ্চয় করতে চেয়েছিলাম /var/run/mysqld। সুতরাং, আমি এই থ্রেডটি পেরিয়ে আসার পরে, /etc/initউদাহরণগুলির জন্য ফাইলগুলি সন্ধান করতে শুরু করি । dbus ভাল ছিল। এবং, আমি এই mysql স্টার্টআপ কনফিগারেশন নিয়ে এসেছি:

start on runlevel [2345] 
stop on runlevel [!2345] 
expect daemon 

pre-start script 
    mkdir -p -m0755 /var/run/mysqld 
    chown mysql:mysql /var/run/mysqld 
end script 

exec /etc/init.d/mysql start 
pre-stop exec /etc/init.d/mysql stop 

প্রাক-প্রারম্ভিক স্ক্রিপ্ট অংশটি কৌশলটি করেছিল।


2

তবুও, আমি সেখানে কিছু ফোল্ডার দেখতে পাচ্ছি, যেমন / var / run / mysqld এবং আরও অনেকগুলি। এই ফোল্ডারগুলি প্রতিটি রিবুটে কীভাবে তৈরি হয়েছিল? এখানে কি কিছু টেম্পলেট ফোল্ডার রয়েছে যা / var / run / এ অনুলিপি করেছে (এবং যদি তা হয় তবে কোন স্ক্রিপ্টটি এটি করে), বা প্রতিটি ফোল্ডার আলাদাভাবে mkdired হয়েছে, বা কী?

হিসাবে সংজ্ঞায়িত ফাইল শ্রেণীক্রম স্ট্যান্ডার্ড/var/run বা /runউদ্বায়ী রানটাইম ডেটা জমা করতে ব্যবহার করা হয়।

সেখানে তৈরি সমস্ত ফোল্ডার এবং ফাইলগুলি সংশ্লিষ্ট প্রোগ্রাম দ্বারা পরিচালিত হয় যা ফাইলগুলি তৈরি করে। টেমপ্লেট ফোল্ডারের মতো কোনও জিনিস নেই যা অনুলিপি করা হয়েছে, প্রতিটি প্রোগ্রাম সেই ফোল্ডারটি অস্থির তথ্য সঞ্চয় করতে ব্যবহার করতে পারে। সিস্টেমটি রিবুট হলে স্টোর করা ডেটা হারিয়ে যায় lost

ব্যবহার করার জন্য একটি সাধারণ জিনিস /runফোল্ডারের সঞ্চয় করতে হয় pidচলমান ডেমন, মার্কার ফাইল একটি প্রক্রিয়া প্রক্রিয়া সংখ্যা ধারণ করে। এগুলি প্রাথমিকভাবে স্টপ / স্টপ স্ক্রিপ্টগুলির জন্য ব্যবহৃত হয় যা আপনি উদাহরণস্বরূপ খুঁজে পেতে পারেন/etc/init.d/

আমি আশা করি যে বিষয়গুলি আপনার কাছে পরিষ্কার হয়ে গেছে!

বিআর


1

আপনার অনুমান একদম সঠিক নয়। অবস্থান /varফোল্ডারের আলোচনা সাপেক্ষে - হয়, তাহলে সেটি একটি বিকল্প পার্টিশন অথবা ভলিউম যার উপর সনাক্ত করতে ব্যবহার করতে পারেন /varফোল্ডার। /varফোল্ডারটি যেখানেই থাকুক না কেন, ফোল্ডারটি /var/runফোল্ডারে একটি সিমিলিংক /runএবং এর বিষয়বস্তুগুলি পুনরায় বুট করার পরে থেকে যায়, যদিও এতে থাকা অনেকগুলি ফাইল /runবুট চলাকালীন পরিষেবাগুলির মাধ্যমে বুটে উত্পন্ন বা সংশোধিত হয়। সুতরাং এটি পরিষেবা - যেমন mysqld- /var/runডিরেক্টরিতে ফাইল লোড করার জন্য কল করে এবং বর্তমানে উপস্থিত না থাকলে সাব-ডিরেক্টরিগুলি তৈরি করতে সেট আপ করা হয়।


1
আমি / var / রানে কিছু ফোল্ডার তৈরি করেছি এবং সেগুলি পুনরায় বুট করার পরে অদৃশ্য হয়ে গেছে। (বিশেষত 12.04 এ)
স্যান্ডম্যান

এছাড়াও এখানে দেখুন / var / রান আসলেই tmpfs Askubuntu.com/questions/57297/…
স্যান্ডম্যান

-2

ডাগগ্রো একেবারে ঠিক, / var / রান টিএমপিএফস হিসাবে মাউন্ট করা হয়, এবং / var / রান / চালানোর জন্য একটি সিমিলিঙ্ক যা রিবুটগুলি জুড়ে অবিচল থাকে, সুতরাং যে কোনও কিছু / চালানো যায় সেগুলিও উপস্থিত হবে (এবং থাকবে) / var / চালানো।

সুতরাং যে কোনও বুট সার্ভিস যেমন মাইএসকিএলডি, যা ডেমোন যা বুট সময়ে শুরু হয়েছিল, যেগুলি / চালাতে ফাইল তৈরি করে, সেগুলিতে / ভার / রান (সিমেলিং টু / রান স্মরণে) উপস্থিত থাকে। আপনি যদি এমন একটি ফাইল তৈরি করতে চান যা / ভার / রান-এ রিবুটের মাধ্যমে অব্যাহত থাকে তবে এটিকে / রান এ তৈরি করে পুনরায় বুট করুন।

আশা করি এটি আপনার প্রশ্নের উত্তর দেয়।


3
আপনি দুজনেই ভুল হয়ে গেছেন বা অ-মানক সেটআপ ব্যবহার করছেন। নিজের জন্য পরীক্ষা করুন। মাউন্ট | গ্রেপ / রান .... tmpfs অন / রান টাইপ tmpfs
স্টিভেন কে

1
"আপনি যদি এমন একটি ফাইল তৈরি করতে চান যা / var / रन-এ পুনরায় বুট করার মাধ্যমে অব্যাহত থাকে তবে এটিকে / রান-এ তৈরি করে পুনরায় বুট করুন।" এটি সঠিক নয়। tmpfsঅস্থির এবং পরিবর্তনগুলি হারিয়ে যায়।
অর্টাঙ্গ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.