পাইথনে লিখিত init.d স্ক্রিপ্ট


10

পাইথনে স্ক্রিপ্টগুলি লেখার বিষয়ে জিজ্ঞাসা করে স্ট্যাক ওভারফ্লোতে একটি প্রশ্ন এসেছিলinit.d । একটি মন্তব্য ইঙ্গিত দিয়েছে যে এই স্ক্রিপ্টগুলি পাইথন নয়, শেলের মধ্যে প্রোগ্রাম করা উচিত। init.dপাইথনে স্ক্রিপ্ট লিখছে :

  1. খারাপ। খারাপ। খারাপ। এটি কখনও করবেন না।
  2. প্রস্তাবিত অনুশীলন নয়।
  3. ঠিক আছে, সাবধানতা সহ
  4. লিগ্যাসি ডগমা।
  5. পুরোপুরি ঠিক আছে।

যে কোনও দুঃস্বপ্নের পরিস্থিতিগুলি জেনে রাখা বা এই নিয়মটি যদি কিছু সিসাদমিনের রক্তে লেখা হয় তবে এটি দুর্দান্ত।

উত্তর:


9

আমি # 2 বলব, তবে # 1 এর খুব কাছে - "খারাপ Bad খারাপ। খারাপ Never কখনও এটি করবেন না।" লিনাক্স থ্রি স্ক্রিপ্টগুলি এলএসবিতে রয়েছে , যেমন এটির মান standard এক, যে লাইনগুলি # টি দিয়ে শুরু হয় সেগুলি হল মন্তব্যগুলি fine আরও জটিল সমস্যা হ'ল প্রয়োজনীয়তা যে init স্ক্রিপ্টটি /lib/lsb/init-functions"বর্তমান পরিবেশে (শেল স্পেশাল বিল্ট-ইন কমান্ড ডট দেখুন)" থেকে কমান্ডগুলি কার্যকর করে ।

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

মাথায় রাখার জন্য আরেকটি বিবেচনা হ'ল systemd, যা লিনাক্সের সমস্ত সিস্টেম সূচনার ফিউচার হতে পারে বা নাও পারে। সিস্টেমডের অধীনে, সূচনাটি স্ক্রিপ্টগুলির পরিবর্তে সাধারণ কনফিগারেশন ফাইল দ্বারা করা হয়, ধারণাটি হ'ল যে সমস্ত স্টার্টআপটি বেশ কয়েকটি স্ট্যান্ডার্ড ডিজাইনের ধরণে ফিট করে এবং সত্যই আপনাকে কেবল একটি বেছে নিতে হবে। আপনি যদি প্রোগ্রামটি সূচনা করার জন্য কিছু জটিল ব্যবহার করেন তবে তা init স্ক্রিপ্টের বাইরে চলে যাওয়া উচিত।


1
আমি এই উত্তর দিয়ে যাচ্ছি। মুল বক্তব্যটিটি হ'ল পাইথন প্রয়োজনীয় নয় এবং মানক নয় এবং এর ফলে এটি ডিবাগিং অনিশ্চয়তা এবং ব্যর্থতার অতিরিক্ত পয়েন্টের অতিরিক্ত পয়েন্ট তৈরি করতে পারে। মূল এসও প্রশ্নের প্রসঙ্গে, আমি সংগ্রহ করি যে এই জাতীয় স্ক্রিপ্টগুলি ডেমোন চালু করতে পারে তবে সেগুলি প্রকৃত ডেমন নয় ons
mjhm

যদি আমি মনে করি, সমস্ত ডিস্ট্রোজরা এলএসবি অনুসরণ করে না। ডেবিয়ান দেখুন।
ম্যাসিমো

10

আমি এটিতে কোনও সমস্যা দেখছি না, যদি আপনি জানেন তবে নিশ্চিতভাবেই, যখন init.d স্ক্রিপ্টটি চালানো হচ্ছে তখন পাইথন ইন্টারপ্রেটার পাওয়া যাবে। এটি আমার কাছে ইঙ্গিত দেয় যে আপনি মাল্টি-ইউজার (বা "গ্রাফিক কনসোল") রান-লেভেলে তুলনামূলকভাবে দেরিতে কিছু করা হচ্ছে।

তবে ... এর অর্থ হ'ল পাইথন ইন্টারপ্রেটারের একটি নির্দিষ্ট সংস্করণ আপনার বুট সিকোয়েন্সের জন্য অত্যাবশ্যক হতে পারে এবং এটি আপনাকে আপগ্রেডগুলি পরীক্ষা করার জন্য আরও একটি থ্যাঙ্ক দরকার।

আমি অনুমান করি এর অর্থ আমি বলছি "3. ঠিক আছে, ক্যাভ্যাট সহ" ats


4
+1 টি। ঠিক কী লিখছিলাম আমি। এখানে কেবলমাত্র "সমস্যাগুলি" হ'ল আপনি এলএসবি মেনে চলার বিষয়টি নিশ্চিত করেছেন (যেমন প্রয়োজনীয় ফাংশন সরবরাহ করা) এবং আপনার অজগর
দোভাষীটি

3
রানটাইম এ উপলব্ধ জটিল হতে পারে যদি ব্যবহারকারী পৃথক পার্টিশনে / ইউএসের নির্বাচন করে থাকে। আপনার স্ক্রিপ্টটি চালানো / usr পরে চালানো গুরুত্বপূর্ণ যেহেতু পাইথন সাধারণত / usr এ ইনস্টল থাকে।
জোড়াদেচে

@ জোরেদাছে - আইয়ুপ। সাধারণত আপনি জানেন যে "মাল্টি-ইউজার" আরসি সিকোয়েন্সে দেরি হয়ে গেলে "ঘটেছে"।
ভ্যাটাইন

2

আমি "3. ঠিক আছে, সাবধানতার সাথে", তবে বিভিন্ন কারণে সম্মত। সোলারিস সম্পর্কে আমার অভিজ্ঞতা ছিল যে তাদের কিছু অভ্যন্তরীণ প্রোগ্রামের জন্য পার্লের একটি ওএস কপি ছিল। পার্লটিকে কিক অফ করতে শেল স্ক্রিপ্টটি শেল ছাড়া আর কিছুই ছিল না। প্রারম্ভিক স্ক্রিপ্টটি কি sh লিখতে হয়েছিল? না, তবে এটি প্রশাসকের জন্য রক্ষণাবেক্ষণের উন্নতি করেছে। আর init স্ক্রিপ্ট এর মতো daemon --startবা জটিল কিছু আর জটিল করতে পারেনি daemon --stop। যদি আপনি এটি করেন, তবে নিয়মিত ব্যবহারকারীরা আপনার সরঞ্জামটিকে অনিরাপদ মোডে শুরু করতে পারবেন, যদি এটি আপনার প্রোগ্রামের প্রসঙ্গে উপলব্ধি করে। তাদের জরিমানা করার জন্য সমস্ত ধরণের জটিল সেটিংসের দরকার পড়বে না।

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

আপনি যদি নান্দনিকতা বা রক্ষণাবেক্ষণ সম্পর্কে চিন্তা না করেন তবে আপনার সূচনা স্ক্রিপ্টটি আপনি চাইলেও লিখতে পারেন। আমি প্রচুর অ্যাডমিন দেখেছি, যারা সঠিকভাবে কাটতে এবং পেষ্ট করতেও পারে না, সম্পূর্ণ কমান্ড লাইন যুক্তি উপেক্ষা করে এবং তারা কেবল ডিমনটি শুরু করে। কোনও শাটডাউন, স্থিতি বা পুনঃসূচনা নেই। এটি অপরিণত ছিল, তবে তাদের কোডটি এখনও চলছে।


1

আমি # 1-2 এর মধ্যে বলি। এলএসবি আপনাকে এইভাবে নির্দেশ দেয় .. এবং সিস-অ্যাডমিন (নন ডেভ ভূমিকা) থেকে চাকরির রেকের শি / বাশ জ্ঞান, পাইথন, পিএইচপি বা পার্লের ডেভ-লেভেল (বা এমনকি হালকা বোঝার) নয়। এটি ল্যাম্প স্ট্যাকের জন্য, সিস্টেম ইনিম স্ক্রিপ্টগুলির জন্য নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.