উবুন্টুতে পরিষেবা হিসাবে সফ্টওয়্যার শুরু করার জন্য বর্তমানে আসলে তিনটি ভিন্ন উপায় রয়েছে, সিএসভি, আপস্টার্ট এবং সিস্টেমড. এক শুরু এবং ব্যবহারকারী দ্বারা সরাসরি চালানো উল্টোদিকে একটি পরিষেবা, পটভূমিতে সিস্টেম দ্বারা চালানো একটি প্রোগ্রাম হিসাবে এখানে সংজ্ঞায়িত করা হয়.
সিএসভি
লিনাক্সে পরিষেবা শুরু করার ঐতিহ্যগত উপায় ছিল একটি স্ক্রিপ্ট স্থাপন করা /etc/init.d
, এবং তারপর ব্যবহার করুন update-rc.d
কমান্ড (বা রেডহ্যাট ভিত্তিক ডিস্ট্রোসে, chkconfig
) এটি সক্ষম বা অক্ষম করতে .
এই কমান্ডটি সিমলিঙ্কগুলি তৈরি করতে কিছু হালকা জটিল যুক্তি ব্যবহার করে /etc/rc#.d
, যে সেবা শুরু করার আদেশ নিয়ন্ত্রণ. আপনি যদি চালান ls /etc/rc2.d
আপনি দেখতে পারেন যে পরিষেবাগুলি একটি ফাইলের নাম দিয়ে হত্যা করা হবে K##xxxx
এবং ফাইলের নাম দিয়ে শুরু S##xxxx
. দ্য ##
মধ্যে S##xxxx
পরিষেবার জন্য একটি "স্টার্ট অর্ডার" মানে xxxx
. বিপরীতে, দ্য ##
মধ্যে K##xxxx
সেবার জন্য হত্যা আদেশ মানে xxxx
.
সঙ্গে এক প্রধান সমস্যা সিএসভি সিস্টেম বুট করার সময় কি ছিল, সবকিছু সিরিয়ালে করতে হয়েছিল, একের পর এক জিনিস, সিস্টেম বুট সময় সত্যিই ধীর করে তোলে. এই সমান্তরাল করার চেষ্টা করা হয়েছে, কিন্তু তারা এলোমেলো এবং পূর্ণ সুবিধা গ্রহণ করা কঠিন ছিল. এই প্রধান কারণ ছিল যে আপস্টার্ট সৃষ্টি করা হয়েছে.
আপস্টার্ট
আপস্টার্ট কাজের সংজ্ঞা ফাইল ব্যবহার করে /etc/init
একটি সেবা শুরু করা উচিত কি ঘটনা নির্ধারণ করতে. সুতরাং, সিস্টেম বুট করার সময়, আপস্টার্ট বিভিন্ন ইভেন্ট প্রক্রিয়া করে এবং তারপরে সমান্তরালে একাধিক পরিষেবা শুরু করতে পারে এটি তাদের সিস্টেমের সংস্থানগুলি সম্পূর্ণরূপে ব্যবহার করতে দেয়, উদাহরণস্বরূপ, অন্য সিপিইউ-বাউন্ড পরিষেবা চালানোর সময় ডিস্ক-বাউন্ড পরিষেবা শুরু করে, বা নেটওয়ার্ক যখন গতিশীল আইপি ঠিকানার জন্য অপেক্ষা করছে নির্ধারিত.
আপনি চলমান দ্বারা আপস্টার্ট কাজের ফাইল সব দেখতে পারেন ls /etc/init/*.conf
আমাকে কেবল এখানে থামতে দিন এবং বলুন যে কোনও পরিষেবা কী, বা এটি কী করে তা যদি আপনি না জানেন তবে এটি অক্ষম করবেন না!
সমস্ত পরিষেবা আপস্টার্টে রূপান্তরিত হয়নি গত কয়েক মাস ধরে ক্যানোনিকাল এ সার্ভার দলের উপর কাজ করার সময়, আমি রূপান্তরিত কাজ ফাইল একটি সংখ্যা কাজ করেছি, এবং নিকৃষ্টতম অংশ এটি এক সব স্ক্রিপ্ট "ম্যাজিক" পরিত্রাণ পেতে এবং মাত্র সেবা শুরু কিভাবে ঠিক নির্ধারণ করতে এখানে এবং সেখানে কয়েক কমান্ড রাখা, এবং আরো কিছুই করতে পারবেন না. কিন্তু এখন জন্য, ঐতিহ্যগত নেটওয়ার্ক সেবা শুধুমাত্র মুষ্টিমেয়, মত স্কুইড এবং সাম্বা, রূপান্তরিত হয়েছে.
একটি পরিষেবা আপস্টার্ট ভিত্তিক?
কোনও পরিষেবা আপস্টার্ট-ভিত্তিক কিনা তা নির্ধারণ করার জন্য, আপনি স্থিতি কমান্ডটি চালাতে পারেন:
status servicename
যদি এটি একটি আপস্টার্ট কাজ, এটা এই প্রদর্শন করবে:
$ status statdstatd start/running, process 942
তবে যদি তা না হয় তবে আপনি এর মতো আরও কিছু দেখতে পাবেন:
$ status apache2status: Unknown job: apache2
এই ক্ষেত্রে, apache2
রূপান্তরিত হয়নি আপস্টার্ট. সুতরাং, অক্ষম করতে apache2
আপনি শুধু চালান
sudo update-rc.d apache2 disablesudo service apache2 stop
আপস্টার্টে পরিষেবা (চাকরি) অক্ষম করুন
আপস্টার্ট কাজের সংজ্ঞা একটি নেই update-rc.d
কমান্ড. কাজ নিষ্ক্রিয় করার জন্য, আপনি এটি নিষ্ক্রিয় করতে সরাসরি কাজ ফাইল সম্পাদনা করতে হবে. এই কাজ করতে দুটি উপায় আছে.
আপনি যদি এখনও ম্যানুয়ালি এটি শুরু করতে সক্ষম হতে চান তবে আপনাকে মন্তব্য করতে হবে start on
শর্ত. আপনি ইনস্টল করতে চান বলুন সাম্বা, কিন্তু এটি স্বয়ংক্রিয়ভাবে শুরু হবে না. এখানে কাজের ফাইল (নাট্টিতে):
description "SMB/CIFS File Server"author "Steve Langasek <steve.langasek@ubuntu.com>"start on local-filesystemsstop on runlevel [!2345]respawnpre-start script RUN_MODE="daemons" [ -r /etc/default/samba ] && . /etc/default/samba [ "$RUN_MODE" = inetd ] && { stop; exit 0; } install -o root -g root -m 755 -d /var/run/sambaend scriptexec smbd -F
অক্ষম করতে সাম্বা, আপনি শুধু একটি লাগাতে পারেন #
সামনে "start on local-filesystems
". মনে রাখবেন যে এটি বুটে ব্যাক আপ শুরু করবে না, আপনার এখনও এটি দিয়ে এটি বন্ধ করতে হবে
sudo service smbd stop
তবে, আপনি কখনই চান না সাম্বা শুরু করার জন্য, আমি আসলে প্যাকেজ অপসারণ সুপারিশ চাই. তবে, আপনি যদি এটি ইনস্টল করতে চান তবে স্টার্টেবল না হন তবে আপনি এটিও করতে পারেন:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
স্টার্ট / স্টপ স্তবক ব্যবহার করে একটি পরিষেবা অক্ষম করুন (11.04 হিসাবে)
আপস্টার্টের সংস্করণ দিয়ে শুরু করা যা 11.04 এ থাকবে, একটি নতুন কীওয়ার্ড রয়েছে যা অক্ষম করে start on
এবং stop on
স্তঞ্জাস: manual
. সুতরাং 11.04 হিসাবে পরিষেবাটি অক্ষম করার আরেকটি উপায় হ ' ল:
echo 'manual' | sudo tee /etc/init/mysql.override# command from root shellecho manual >> /etc/init/mysql.override
আপনি একটি তৈরি করতে পারেন override
শুধু নির্বাণ দ্বারা এ সব কাজের সংজ্ঞা সম্পাদনা ছাড়া একটি সেবা নিষ্ক্রিয় ফাইল manual
এটা শব্দ.