Chkconfig দ্বারা সমর্থিত একটি লিনাক্স পরিষেবাটির জন্য কী প্রয়োজন?


36

আমি বুটটাইমে অটো স্টার্টে যুক্ত করার চেষ্টা করছি এর মাধ্যমে একটি লিনাক্স পরিষেবা

chkconfig -add <servicename> 

এবং আমি একটি বার্তা পেয়েছি বলে

service <servicename> does not support chkconfig

আমি রেড হ্যাট এন্টারপ্রাইজ 4 ব্যবহার করছি boot বুটটাইমের সময় অটোস্টার্টে যে স্ক্রিপ্টটি যুক্ত করার চেষ্টা করছি তা নিম্নলিখিত:

#!/bin/sh

soffice_start() {   if [ -x /opt/openoffice.org2.4/program/soffice ]; then
        echo "Starting Open Office as a Service"
        #echo " soffice -headless -accept=socket,port=8100;urp;StarOffice.ServiceManager
-nofirststartwizard"
        /opt/openoffice.org2.4/program/soffice
-headless -accept="socket,host=0.0.0.0,port=8100;urp;StarOffice.ServiceManager"
-nofirststartwizard &   else
        echo "Error: Could not find the soffice program. Cannot Start SOffice."   fi }

soffice_stop() {   if [ -x /usr/bin/killall ]; then
        echo "Stopping Openoffice"
        /usr/bin/killall soffice 2> /dev/null   else
        echo "Eroor: Could not find killall.  Cannot Stop soffice."   fi }

case "$1" in  'start')    soffice_start    ;;  'stop')    soffice_stop    sleep 2    ;;  'restart')    soffice_stop    sleep 5  soffice_start    ;;  *)    if [ -x /usr/bin/basename ]; then
        echo "usage: '/usr/bin/basename $0' start| stop| restart"    else
        echo "usage: $0 start|stop|restart"    fi esac

উত্তর:


74

স্ক্রিপ্টের অবশ্যই 2 টি লাইন থাকবে:

# chkconfig: <levels> <start> <stop>
# description: <some description>

উদাহরণ স্বরূপ:

# chkconfig: 345 99 01
# description: some startup script

345 - levels to configure
99 - startup order
01 - stop order

উপরের শিরোনামগুলি যুক্ত করার পরে আপনি চালাতে পারেন chkconfig --add <service>


দ্বিতীয় লাইনে অতিরিক্ত স্থানটি
মার্কডাউন

2
রান লেভেল এবং অন্যান্য বিষয়ে আরও কিছু তথ্য এখানে দেওয়া হল। tldp.org/HOWTO/HighQuality-Apps-HOWTO/boot.html
মাস

উপরেরগুলিতে যদিও সঠিক কিল স্ক্রিপ্টগুলি যুক্ত করা হবে বলে মনে হচ্ছে না। স্পষ্টভাবে কিল স্ক্রিপ্টগুলি পেতে আমার chkconfig <service> --level 06 বন্ধ দরকার।
ব্যবহারকারী 239558

4

যদিও ক্যাট্রিয়েল ইতিমধ্যে একটি এনআর স্ক্রিপ্ট তৈরি করার জন্য প্রয়োজনীয় ন্যূনতম সাথে এটির জবাব দিয়েছে, আমি মনে করি যে আপনি /etc/init.d/skeletonআপনার আরআইপি স্ক্রিপ্টটি বেস করতে চান এমন কোনও টেম্পলেট হিসাবে দেখার এবং এটি ব্যবহার করে ভালভাবে পরিবেশন করবেন । আপনি আরও অনেক ধারাবাহিক এবং পাঠযোগ্য স্ক্রিপ্ট দিয়ে শেষ করব।


5
তাত্ত্বিকভাবে ভাল পরামর্শ, তবে /etc/init.d/skeletonআরএইচইএল সিস্টেমে উপস্থিত নেই, কেবলমাত্র দেবিয়ান এবং সম্পর্কিত (উবুন্টু, আমি মনে করি) on
হারলান

1

জিওর সুনির্দিষ্ট সমস্যাটি ইতিমধ্যে সমাধান হয়ে গেছে বলে মনে হচ্ছে তবে sidekiqএকটি পরিচালিত পরিষেবা হিসাবে একটি রেলস অ্যাপ সেটআপ করার চেষ্টা করার সময় আমি একটি অনুরূপ বার্তায় চলে এসেছি । আমি আমার সমাধানটি এখানে ব্যাখ্যা করব যদি এটি আমার মতো অন্য কোনও নবজাতককে সহায়তা করে।

আমি একটি সেন্টোস ইনস্টল-এ কাজ করছি, এবং চককনফিগ ইতিমধ্যে বেশ কয়েকটি অন্যান্য পরিষেবাদি যেমন httpd, mysql, এবং redis এর সাথে সেট আপ করা আছে। নোট যে অধিকাংশ সেবা শুধুমাত্র রান-লেভেল সক্রিয় করার প্রয়োজন 3মাধ্যমে 5

chkconfig --list
> httpd             0:off   1:off   2:on    3:on    4:on    5:on    6:off
> mysqld            0:off   1:off   2:on    3:on    4:on    5:on    6:off
> redis-server      0:off   1:off   2:on    3:on    4:on    5:on    6:off
> (etc...)

আমাকে sidekiqপরিষেবার জন্য একটি নতুন স্ক্রিপ্ট যুক্ত করার দরকার ছিল , তাই আমি স্ক্রিপ্টটি https://gist.github.com/CD1212/5326706 এ ধরলাম , আমার অ্যাপ্লিকেশনটির প্যারামিটারগুলির সাথে ফিট করার জন্য এটি সংশোধন করে এটিকে সংরক্ষণ করেছিলাম /etc/rc.d/init.d/sidekiq(সমস্ত মত মূলের মালিকানাধীন) অন্যান্য স্ক্রিপ্ট সেখানে)।

তবে আমি যখন এই নতুন পরিষেবাটি নিবন্ধ করার চেষ্টা করেছি তখন আমি চেককনফিগ ত্রুটি পেয়েছি:

sudo chkconfig --add sidekiq
> service sidekiq does not support chkconfig

কিছু অতিরিক্ত পড়ার পরে আমি আবিষ্কার করেছি যে প্রতিটি চকনফিগ স্ক্রিপ্টের শীর্ষে সংজ্ঞাযুক্ত অগ্রাধিকার সংখ্যাগুলি অবশ্যই অনন্য হতে হবে। একটি পরিষ্কার ত্রুটি বার্তা ভাল হত! অন্য স্ক্রিপ্টের শাটডাউন অগ্রাধিকার স্তর 75 ছিল, তাই আমি আমার পরিবর্তন করে 76 এ আবার চেষ্টা করেছি। এখানে আমার সূচনা স্ক্রিপ্ট প্রধান:

#!/bin/bash
#
# sidekiq    Init script for Sidekiq
#
# chkconfig: 345 99 76
# processname: sidekiq
# pidfile: /var/www/visual_testing_tool/sidekiq.pid
# description: Starts and Stops Sidekiq message processor for the Rails app.
#

এবার sudo chkconfig --add sidekiqকোনও অভিযোগ দেয়নি। তারপরে যখন আমি দৌড়ে গেলাম sudo chkconfig --list sidekiq, সাইডিকিক পরিষেবাটি onযথাযথ রানলেভেলের মতো দেখানো হয়েছিল ।


0

অগ্রাধিকার সংখ্যাগুলি অনন্য হতে হবে না। তারা কেবল পরিষেবাগুলির অর্ডার উপস্থাপন করে।

ls -l /etc/rc.d/rc3.d/*oracle lrwxrwxrwx 1 টি মূল মূল 16 সেপ্টেম্বর 12 12:28 /etc/rc.d/rc3.d/S99oracle -> ../init.d/oracle

ls -l /etc/rc.d/rc3.d/*it
lrwxrwxrwx 1 মূল মূল 12 সেপ্টেম্বর 12 12:36 /etc/rc.d/rc3.d/S99it -> ../init.d/it

চককনফাইগের "এটি" পরিষেবা যুক্ত করে কোনও সমস্যা হয়নি। অন্যথায় আপনি 100 টি পরিষেবাতে সীমাবদ্ধ থাকবেন।

এছাড়াও আমার উদাহরণে, এটি ওরাকলের আগে চলবে কারণ স্ক্রিপ্টগুলি বর্ণানুক্রমিকভাবে চালানো হয়।

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