প্রস্তুতি প্রোটোকল মেলেনি
উইল্যান্ড সূচিত হিসাবে, Type
পরিষেবাটি গুরুত্বপূর্ণ। প্রস্তুতি প্রোটোকল সিস্টেমযুক্ত পরিষেবাটি কী কথা বলবে তা সেটিকে সেটিংটি নির্দেশ করে । একটি simple
পরিষেবা অবিলম্বে প্রস্তুত বলে ধরে নেওয়া হয়। কোনও forking
পরিষেবা প্রস্তুত হওয়ার জন্য তার প্রাথমিক প্রক্রিয়াটি একটি শিশুকে কাঁটাচামচ করে দেয় এবং তারপরে বাইরে চলে যায়। একটি dbus
সেবা যখন একটি সার্ভার ডেস্কটপ বাস প্রদর্শিত প্রস্তুত হতে নেওয়া হয়। এবং তাই এগিয়ে।
আপনি যদি পরিষেবাটি কী করে সেটির সাথে মিলানোর জন্য পরিষেবা ইউনিটে ঘোষণা করা প্রস্তুতি প্রোটোকলটি না পান, তবে জিনিসগুলি ঘৃণিত হয়। প্রস্তুতি প্রোটোকল মেলেনি ম্যাচের কারণে পরিষেবাগুলি সঠিকভাবে শুরু না হয়, বা (আরও সাধারণত) সিস্টেমড দ্বারা ব্যর্থ হিসাবে চিহ্নিত (ভুল) হয়। যখন কোনও পরিষেবা সিস্টেমড চালু করতে ব্যর্থ হিসাবে দেখা যায় তা নিশ্চিত করে যে পরিষেবাটি যথাযথভাবে নিষ্ক্রিয়তায় ফিরিয়ে আনার জন্য পরিষেবার প্রতিটি অনাথ অতিরিক্ত প্রক্রিয়া যাতে ব্যর্থতার অংশ হিসাবে চালিত রেখে গেছে (তার দৃষ্টিকোণ থেকে) মারা যায় অবস্থা.
আপনি ঠিক এই করছেন।
প্রথম সব, সহজ কাপড়: sh -c
মিলছে না Type=simple
বা Type=forking
।
ইন simple
প্রোটোকল, প্রাথমিক প্রক্রিয়া গ্রহণ করা হয় হতে সেবা প্রক্রিয়া। কিন্তু বাস্তবে একটি sh -c
মোড়ক একটি শিশু প্রক্রিয়া হিসাবে প্রকৃত পরিষেবা প্রোগ্রাম চালায় । সুতরাং MAINPID
ভুল হয়ে যায় এবং শুরু করা ExecReload
কাজ করা বন্ধ করে দেয়। যখন ব্যবহার Type=simple
, এক পারেন ব্যবহার করা আবশ্যক sh -c 'exec …'
অথবা ব্যবহার করবেন sh -c
প্রথম স্থানে। পরবর্তী লোকেরা প্রায়শই সঠিক কোর্সটি কিছু লোকের চেয়ে বেশি মনে করে।
sh -c
কোনটির সাথেও মেলে Type=forking
না। কোনও forking
পরিষেবার জন্য প্রস্তুতি প্রোটোকলটি বেশ নির্দিষ্ট। প্রাথমিক প্রক্রিয়াটিতে একটি শিশুকে কাঁটাচামচ করতে হবে এবং তারপরে প্রস্থান করতে হবে। systemd এই প্রোটোকলটিতে একটি সময়সীমা প্রয়োগ করে। প্রাথমিক প্রক্রিয়া যদি নির্ধারিত সময়ের মধ্যে কাঁটাচামচ না করে তবে এটি প্রস্তুত হতে ব্যর্থ। প্রাথমিক প্রক্রিয়া যদি নির্ধারিত সময়ের মধ্যে প্রস্থান না করে তবে সেটিও একটি ব্যর্থতা।
অপ্রয়োজনীয় ভয়াবহতা ossec-control
যা আমাদের জটিল জিনিসগুলিতে নিয়ে আসে: সেই ossec-control
স্ক্রিপ্ট।
দেখা যাচ্ছে যে এটি একটি 5 সিস্টেম 5 rc
স্ক্রিপ্ট যা 4 এবং 10 টি প্রক্রিয়াগুলির মধ্যে কাঁটাচামচ করে, যা নিজেরাই তাদের পালা কাঁটাচামচ করে এবং প্রস্থানও করে। এটি সেই 5 সিস্টেমের 5 rc
স্ক্রিপ্টগুলির মধ্যে একটি যা for
লুপস, রেস শর্তাদি, স্বেচ্ছাসেবীদের sleep
এড়াতে চেষ্টা করার সাথে একক স্ক্রিপ্টে সার্ভার প্রক্রিয়াগুলির পুরো সেটটি পরিচালনা করার চেষ্টা করে, ব্যর্থতা মোডগুলি যা অর্ধ-প্রারম্ভিক অবস্থায় সিস্টেমকে শ্বাসরোধ করতে পারে, এবং অন্যান্য সমস্ত ভয়াবহতা যা দু'দশক আগে লোকেরা এআইএক্স সিস্টেম রিসোর্স কন্ট্রোলার এবং ডেমোনটোলসের মতো জিনিস আবিষ্কার করেছিল। এবং আসুন আইডিসিঙ্কক্র্যাটিক enable
এবং disable
ক্রিয়াগুলি প্রয়োগ করতে, বাইনারি ডিরেক্টরিতে লুকানো শেল স্ক্রিপ্টটি ভুলে যাবেন না যা এটি উড়ে আবার লিখেছে।
সুতরাং যখন আপনি /bin/sh -c '/var/ossec/bin/ossec-control start'
যা ঘটে তা হ'ল:
- সিস্টেমড এটি পরিষেবা প্রক্রিয়া হিসাবে প্রত্যাশা করে যা কাঁটাচামচ করে।
- এটাই শেল, যা কাঁটাচ্ছে
ossec-control
।
- যা ঘুরে দেখা যায় 4 থেকে 10 নাতি নাতনিদের মধ্যে।
- নাতি-নাতনিরা সমস্ত কাঁটাচামচ করে পালা করে বের হয়।
- নাতি-নাতনিরা সমস্ত কাঁটাচামচ সমান্তরালে বেরিয়ে আসে।
ossec-control
প্রস্থান করে।
- প্রথম শেলটি বের হয়।
- সেবা প্রসেস ছিল দারুণ-great- নাতি নাতনিদের, কিন্তু কাজ ম্যাচের এই ভাবে তন্ন তন্ন
forking
নাsimple
প্রস্তুতি প্রোটোকল systemd হল সামগ্রিকভাবে সেবা বিবেচনায় ব্যর্থ হয়েছে এবং স্থবির হয়েছে এটি ডাউন ব্যাক।
এই ভয়াবহতার কোনওটিই আসলে সিস্টেমডের অধীনে প্রয়োজনীয় নয়। কোনটাই না.
একটি সিস্টেমযুক্ত টেম্পলেট পরিষেবা ইউনিট
পরিবর্তে, একটি খুব সাধারণ টেম্পলেট ইউনিট লিখেছেন :
[ইউনিট]
বিবরণ = ওএসএসইসি হিডস% আই সার্ভার
= Network.target পর
[পরিষেবা]
প্রকার = সহজ
এক্সেকস্টার্টপ্রে = / ইউএসআর / বিন / এনভি / ভার / ওস্যাক / বিন /% পি-% আই -t
এক্সেকস্টার্ট = / ইউএসআর / বিন / এনভি / ভের / ওস্যাক / বিন /% পি-% আই-এফ
[ইনস্টল করুন]
WantedBy = multi-user.target
এটি এই হিসাবে সংরক্ষণ করুন /etc/systemd/system/ossec@.service
।
বিভিন্ন প্রকৃত পরিষেবাগুলি হ'ল এই টেম্পলেটটির ইনস্ট্যান্টেশন named
ossec@dbd.service
ossec@agentlessd.service
ossec@csyslogd.service
ossec@execd.service
ossec@agentd.service
ossec@logcollector.service
ossec@syscheckd.service
ossec@maild.service
ossec@analysisd.service
ossec@remoted.service
ossec@monitord.service
তারপরে সক্ষম ও অক্ষম ফাংশনটি সরাসরি সার্ভিস ম্যানেজমেন্ট সিস্টেম থেকে আসে ( রেডহ্যাট বাগ 752774 স্থির করে) লুকানো শেল স্ক্রিপ্টগুলির কোনও প্রয়োজন নেই।
systemctl ওস্যাক @ ডিবিডি ওস্যাক @ এজেন্টলেসড ওস্যাক @ সিএসলগড ওস্যাক @ মাইল্ড ওস্যাক @ এক্সিকিউটড ওস্যাক @ এনালাইসড ওস্যাক @ লগকোলেক্টর ওস্যাক @ রিমোটড ওস্যাক @ সিচেকড ওস্যাক @ মনিটর্ড
তদ্ব্যতীত, সিস্টেমড প্রতিটি প্রকৃত পরিষেবাদি সরাসরি সম্পর্কে জানতে এবং তা জানতে পারে। এটি দিয়ে তাদের লগগুলি ফিল্টার করতে পারে journalctl -u
। এটি যখন জানতে পারে যে কোনও ব্যক্তি পরিষেবা কখন ব্যর্থ হয়েছে। কোন পরিষেবাগুলি সক্ষম এবং চলমান হওয়ার কথা তা এটি জানে।
উপায় দ্বারা: Type=simple
এবং -f
অপশনটি এখানে যেমন ঠিক তেমন অন্য অনেক ক্ষেত্রে রয়েছে। বন্য অঞ্চলে খুব কম পরিষেবাগুলি তাদের কৌতুক দ্বারা তাদের তাত্পর্যপূর্ণতার সংকেত দেয়exit
এবং এখানে এগুলিও এরকম নয় not তবে এটাই forking
টাইপের মানে। প্রধানতম বুনোতে পরিষেবাগুলি কাঁটাচামচ করে বেরিয়ে আসে কারণ কিছু ভুলের কারণে বুদ্ধিমান ধারণাটি পাওয়া যায় যা ডেমনদের করার কথা। আসলে, এটা না। এটি 1990 এর দশক পরে না। এটা ধরার সময়।
আরও পড়া