"/Etc/init.d" এবং "/ lib / systemd / system" এর পরিষেবাদি সম্পর্কে বিভ্রান্ত


15

আমি লিনাক্স জগতে সম্পূর্ণ নতুন, তাই আমি যে কোনও ভুল বলতে পারি বলে দুঃখিত।

আমি একটি দেবিয়ান 8.5 মেশিনে একটি মঙ্গো ডিবি চালানোর চেষ্টা করছি। আমি যখন প্যাকেজটি ইনস্টল করেছি (পেরকোনা ডটকম থেকে প্রাক নির্মিত), আমি নিম্নলিখিত ফাইলগুলি লক্ষ্য করেছি:

/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)

/Etc/init.d/mongod সম্পর্কে

আমি বুঝতে পারি যে update-rc.dবুট / অন্য নির্দিষ্ট সিস্টেমের রাজ্যে এটিকে বলা হয় (যতক্ষণ না এটি এর মাধ্যমে নিবন্ধিত হয় ) (এটি সম্পর্কে প্রযুক্তিগত পেতে চাই না, আমি প্রচুর তথ্য শোষণ করছি এবং এটি কম গুরুত্বপূর্ণ বলে মনে হচ্ছে)।

এটি আমার পক্ষে পুরোপুরি ঠিক আছে। স্ক্রিপ্টটি প্রচুর সূচনা করে এবং অবশেষে মঙ্গো ডেমন চালু করে। মনে হচ্ছে এটি শুরু, থামানো, পুনরায় চালু করার জন্য ইত্যাদির জন্য "ট্রিগার" রয়েছে এবং যতদূর আমি বুঝতে পারি আমি তাদের সাথে ট্রিগার করতে পারি sudo service mongod <action>

/Lib/systemd/system/mongod.service সম্পর্কে

এই ফাইলটি একই জিনিসটি (যেমন মঙ্গো চালান) বলে মনে হচ্ছে তবে কম কনফিগারেশনের সাথে এক্সিকিস্টার্ট প্যারামিটারে কেবল একটি লাইন রয়েছে:

[Unit]
Description=MongoDB (High-performance, schema-free document-oriented database)
After=time-sync.target network.target
[Service]
Type=forking
User=mongod
Group=mongod
PermissionsStartOnly=true
EnvironmentFile=/etc/default/mongod
ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}"
PIDFile=/var/run/mongod.pid
[Install]
WantedBy=multi-user.target

আমি যতদূর বুঝতে পারি এটি দিয়ে ট্রিগার করা যেতে পারে sudo systemctl start mongod

  • বুট এ বলা হয় কিনা তা আমি বুঝতে পারি না।

  • আমি বুঝতে পারছি না কেন এই দুটি 'পরিষেবা' ফাইলের প্রয়োজন, এবং আমি কীভাবে একটি থেকে মুক্তি পেতে পারি (সম্ভবত এটি / lib / systemd, কারণ এটি অনেক সহজ) ler

  • দুজনের মধ্যে কোনও সম্পর্ক আছে কিনা তা আমি বুঝতে পারি না।

  • আমি পড়েছি যা স্ক্রিপ্টগুলিতেও systemctlকাজ করে init.dএবং এই ক্ষেত্রে আমি বুঝতে পারি না যে দুটি ফাইলের মধ্যে কোনটি দ্বারা ট্রিগার হবে systemctl mongod start

আমি মনে করি কিছু অপ্রয়োজনীয়তা আছে এবং আমার দুটি উপায়ের একটি বেছে নেওয়া উচিত। এবং আমি নিশ্চিত যে এটি যে চান

  • বুট বলা হয়
  • কমান্ড দ্বারা কল (যেমন serviceবা systemctl)।

আপনি আমার মন পরিষ্কার করতে সাহায্য করতে পারেন? কিছু মন্তব্যের সাহায্যে আমি সম্ভবত প্রশ্নটি ফোকাস করতে এবং সংকুচিত করতে পারি।

উত্তর:


12

যখন আপনার কাছে init.dস্ক্রিপ্ট এবং .serviceএকই নামের সিস্টেমযুক্ত ফাইল উভয় থাকে , তখন সিস্টেমড সমস্ত ক্রিয়াকলাপের জন্য পরিষেবা ফাইলটি ব্যবহার করবে। আমি বিশ্বাস করি serviceকমান্ডটি কেবল সিস্টেমডে পুনর্নির্দেশ করবে। Init.d স্ক্রিপ্ট উপেক্ষা করা হবে।

ব্যবহার systemd। এটি ডেবিয়ান 8 এ নতুন তবে এটি ডিফল্ট। সিস্টেমড সার্ভিস ফাইলগুলি init.d স্ক্রিপ্টগুলির চেয়ে সহজ দেখায় বলে মনে করা হয়। আপনি প্রয়োজনীয় কোনও নির্দিষ্ট বৈশিষ্ট্য উল্লেখ করেননি যা সিস্টেমড পরিষেবা দ্বারা সমর্থিত নয়।

যদি সার্ভিস ফাইলটি অন্তর্ভুক্ত না করা systemdহত তবে আনন্দের সাথে init.d স্ক্রিপ্টটি ব্যবহার করবে। সুতরাং মংড প্যাকেজ বিকাশকারী আপনাকে বলছে যে তারা এই সিস্টেমড সংজ্ঞাটি আরও ভাল বলে মনে করে :)।

এর আউটপুট দেখুন systemctl status mongod। যদি বুট সময়ে পরিষেবাটি চালু করা সক্ষম করা হয় তবে Loaded:লাইনটি "সক্ষম" করবে। অন্যথায় আপনি ব্যবহার করতে পারেন systemctl enable mongod। আপনি বিকল্পটি অন্তর্ভুক্ত করতে পারেন --nowএবং এটি একই সাথে মঙ্গোদ শুরু করবে।


ধন্যবাদ! আমি সিস্টেমড অধ্যয়ন করতে যাচ্ছি এবং শেষ পর্যন্ত এটি ব্যবহার করব। আপাতত আমি এটি অক্ষম করতে চেয়েছিলাম এবং অবশেষে আমি যে ডি.ডি স্ক্রিপ্টটি নিয়ে কাজ করছি তা চালাতে চাই। আমি গিয়েছিলাম systemctl disable mongod:; তারপরে মঙ্গড-ব্যাকসেস.সর্পিসে নামকরণ করা হয়েছে মঙ্গড.সার্ভিস; তারপর systemctl daemon-reload। আপনি কি মনে করেন এটি সঠিক ছিল? আমি পড়েছি আপনার / lib / systemd / system / এ ফাইলগুলি পরিবর্তন করা উচিত নয়, তবে নাম পরিবর্তন না করে systemctl init.d স্ক্রিপ্টটিকে উপেক্ষা করে চলেছে।
নটারিও

/ Lib / systemd এ থাকা ফাইলগুলি কনফিলেস নয়। আমি সত্যিই কোনও ডেবিয়ান প্যাকেজ ইনস্টল করার এবং এর ফাইলগুলি সংশোধন করার (এবং পরে প্যাকেজ আপডেট করার) প্রস্তাব দিতে পারি না। পরিবর্তে, আপনার init.d স্ক্রিপ্টটির নতুন নামকরণ করা উচিত যা আপনি "কাজ করছেন" (সম্ভবতঃ সংশোধন করছেন?)। init.d স্ক্রিপ্টগুলি কনফিলেস থাকে। যদি কোনও আপডেট কোনও কনফিল পরিবর্তন করে (যার কোনও কারণ না থাকা উচিত) তবে এটি আপনাকে প্রথমে সতর্ক করবে। এই ক্ষেত্রে আমি আসল, (কার্যকরভাবে) মুছে ফেলা init.d স্ক্রিপ্টের কোনও আপডেট সংস্করণ উপলব্ধ থাকলে এটি আপনাকে অবহিত করার প্রত্যাশা করব।
সোর্সজেডি

এটি আপনাকে আপনার নতুন সেবা ক্রম নির্ভরতা যোগ করার জন্য পরিষেবার যার উপর নির্ভর করতে হবে সম্ভব mongod। আপনার কিছু কঠোর নির্ভরতা অপসারণ করারও একটি সুযোগ রয়েছে তবে আমি এটি ভাবিনি। ক্ষতিগ্রস্ত পরিষেবাদিগুলিকে সংশোধন করার একটি নিরাপদ উপায় হ'ল তাদের অনুলিপিটি অনুলিপি করা /etc/systemd/system/এবং সংশোধন করা।
সোর্সজেডি

সাধারণভাবে, আমি মনে করি সিস্টেমডের সাথে স্টিক করা সহজ simp আপনি এখন ব্যাশ, আরআর-ফাংশন এবং সিস্টেমডের ব্যাক-কম্প্যাট বৈশিষ্ট্যগুলি অধ্যয়ন করছেন । যেহেতু আপনি খাঁটি এসআইএসভি থিম সিস্টেমটি শিখছেন না, আপনি যদি কখনও এই জাতীয় সিস্টেম ব্যবহার করেন, তবে ঝুঁকি রয়েছে যে আপনি প্রকৃতপক্ষে সিস্টেমড থেকে আসা বৈশিষ্ট্যগুলি আশা করবেন।
সোর্সজেদি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.