যখন একটি ম্যানুয়াল আহ্বান service
/etc/init.d অথবা /etc/rc.d থেকে একটি SysV শৈলী স্ক্রিপ্ট চালায়, সমস্ত স্ট্যাটাস আউটপুট নির্ভর করে সম্পূর্ণরূপে যে স্ক্রিপ্ট।
যথাযথভাবে লিখিত init.d স্ক্রিপ্টগুলি ডিস্ট্রো দ্বারা উপলব্ধ শেল ফাংশনগুলির একটি লাইব্রেরি ব্যবহার করবে। উদাহরণস্বরূপ, ডেবিয়ানতে, বেশিরভাগ স্ক্রিপ্টগুলি ফাইল (উৎস) লোড করবে /lib/lsb/init-functions
, এবং সহজভাবে তার মত ফাংশন কল এই:
case "$1" in
start)
log_daemon_msg "$ DESC শুরু হচ্ছে" "$ NAME"
do_start
কেস "$?" মধ্যে
0 | 1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
[...]
esac
এখানে স্ট্যান্ডার্ড ফাংশন তালিকা LSB দ্বারা সংজ্ঞায়িত। (উল্লেখ্য যে distros প্রদান করতে পারে অতিরিক্ত উপরে উদাহরণ হিসাবে, মান অতিক্রম ফাংশন। এছাড়াও খেয়াল রাখবেন যে যেমন। ওপেনআরসি বা আর্ক লিনাক্স নয় এলএসবি-সামঞ্জস্যপূর্ণ এবং সম্পূর্ণ ভিন্ন শৈলী ব্যবহার করুন।)
আসলে, কিছু distros কেন্দ্রীয়ভাবে এই boilerplate কোড প্রদান করবে, এবং init.d স্ক্রিপ্ট বাকি যে সব বাস্তবায়ন করা হয় do_start
। (জেন্টু এর ওপেনআরসি এবং ডেবিয়ান এর দেখুন /lib/init/init-d-script
উদাহরণ হিসাবে)। যাইহোক, এটি একটি "আদর্শ" এলএসবি বৈশিষ্ট্য নয় - LSB- সামঞ্জস্যপূর্ণ হওয়ার চেষ্টা করার স্ক্রিপ্টগুলি এখনও এটি নিজে করতে হবে।
বিঃদ্রঃ: আমি 'যথাযথভাবে লিখিত' জোর দিয়েছি কারণ সত্যিই এমন কিছুই নেই বল একটি init.d স্ক্রিপ্ট এই কাজগুলি, মানব তত্ত্বাবধানের ছাড়া অন্যটি ব্যবহার করতে। স্ক্রিপ্ট প্লেইন মাধ্যমে অবস্থা রিপোর্ট করতে চায় echo
(অথবা মাধ্যমে cowsay
যে বিষয়টি জন্য), এটা সবসময় যে করতে সক্ষম। এটি বিশেষ করে স্বাভাবিক চ্যানেলের বাইরে বিতরিত বাণিজ্যিক সফটওয়্যারগুলির একটি সমস্যা: তাদের স্ট্যাটাস আউটপুট না বেশ সঠিক দেখায় (এবং সত্যি, পুরো init.d স্ক্রিপ্টটি বেশ সঠিকভাবে আচরণ করে না)।
এদিকে, যখন SysV স্ক্রিপ্ট সময় বলা হয় বুট প্রক্রিয়া ফলাফলটি আরও বেশি ডিস্ট্রো-নির্ভরশীল - কখনও কখনও আপনি সরাসরি স্ক্রিপ্টগুলি থেকে আউটপুট দেখতে পাবেন, তবে কখনও কখনও "প্রধান" init সিস্টেমটি শুরু হওয়া সমস্ত পরিষেবাগুলির জন্য এটির নিজস্ব স্ট্যাটাস আউটপুট সরবরাহ করবে। ( উদাহরণ: আর্ক লিনাক্স পুরাতন initscripts, ব্যাকগ্রাউন্ডে একটি সেবা শুরু করার সময়।)
কিন্তু আপনার দ্বিতীয় উদাহরণ আসলে হয় না একটি SysV শৈলী init - এটি systemd (যা আপনার উদাহরণে একটি 'legacy' init.d স্ক্রিপ্ট শুরু হতে পারে)। Systemd একটি সম্পূর্ণ পরিষেবা পরিচালক যা পরিষেবা কনফিগারেশনগুলি (স্ক্রিপ্ট নয়) ব্যবহার করে এবং তাই সব বুট / শাটডাউন অবস্থা আউটপুট systemd নিজেই প্রদান করা হয়। এটি init-ng, SMF, অথবা Upstart সহ অন্যান্য অন্যান্য "পরিষেবা পরিচালকদের" ক্ষেত্রেও প্রযোজ্য।
/lib/lsb/init-functions
, কিন্তু যখন আমি চালানোর চেষ্টা করি[ 1 != 2 ] && log_end_msg 1
আমি পেয়েছি ... ... ব্যর্থ![fail]
। আমি একটু বিভ্রান্ত।