ऑनवर्क्स लिनक्स और विंडोज ऑनलाइन वर्कस्टेशन

प्रतीक चिन्ह

वर्कस्टेशन के लिए मुफ्त होस्टिंग ऑनलाइन

<पिछला | विषय-सूची | अगला>

डी.1. /etc/rc.d/init.d/rc‌

RSI rc स्क्रिप्ट पहली स्क्रिप्ट है जिसे init द्वारा बुलाया जाता है और बूट प्रक्रिया आरंभ करता है।

की छवि

#! / Bin / bash

############################################# #####################

#आरसी शुरू करें

#

# विवरण: मुख्य रन लेवल नियंत्रण स्क्रिप्ट

#

# लेखक: जेरार्ड बीकमैन्स - [ईमेल संरक्षित]

# : डीजे लुकास - [ईमेल संरक्षित]

# अद्यतन : ब्रूस डब्स - [ईमेल संरक्षित]

#

# संस्करण: एलएफएस 7.0

#

############################################# #####################

. /lib/lsb/init-functions print_error_msg()

{

लॉग_विफलता_संदेश

# $i कॉल करने पर सेट हो जाता है

MSG='विफलता:\n\nआपको यह त्रुटि संदेश नहीं पढ़ना चाहिए।\n\n' MSG='${MSG}इसका मतलब है कि एक अप्रत्याशित त्रुटि हुई है\n' MSG='${MSG}${ में"

MSG='${MSG}जो ${error_value} के रिटर्न मान के साथ बाहर निकल गया।\n'


MSG='${MSG}यदि आप ${DISTRO_MINI} पुस्तक द्वारा प्रदान की गई फ़ाइलों में से किसी एक में इस त्रुटि को ट्रैक करने में सक्षम हैं,\n' MSG='${MSG},\n' MSG=' ${MSG}कृपया हमें ${DISTRO_CONTACT} पर सूचित करने की कृपा करें।\n" log_failure_msg "${MSG}"


log_info_msg "जारी रखने के लिए Enter दबाएँ..." wait_for_user

}


check_script_status()

{

# $i को कॉल करने पर सेट किया जाता है यदि [ ! -f ${i} ]; तब

log_warning_msg "${i} वैध सिम्लिंक नहीं है।" SCRIPT_STAT='1'

fi


अगर [ ! -x ${i} ]; तब

की छवि


log_warning_msg "${i} निष्पादन योग्य नहीं है, छोड़ा जा रहा है।" SCRIPT_STAT='1'

fi

}


Daud()

{

यदि [ -z $इंटरैक्टिव ]; तब

${1} ${2}

वापसी $?

fi


जबकि सच है; करना

पढ़ें -पी "${1} ${2} चलाएँ (हाँ/नहीं/जारी रखें)? " -एन 1 रनिट इको


c | में केस ${runit} सी)

इंटरैक्टिव = ""

${i} ${2}

ret=${?} टूटना;

;;


एन | एन)

वापसी 0

;;


य | वाई)

${i} ${2}

ret=${?} टूटना

;;

एसैक किया गया


वापसी $ret

}


# कोई भी स्थानीय सेटिंग/ओवरराइड पढ़ें

[ -r /etc/sysconfig/rc.site ] && स्रोत /etc/sysconfig/rc.site


डिस्ट्रो=${डिस्ट्रो:-"लिनक्स फ्रॉम स्क्रैच"}

DISTRO_CONTACT=${DISTRO_CONTACT:-"[ईमेल संरक्षित] (पंजीकरण आवश्यक)"} DISTRO_MINI=${DISTRO_MINI:-"LFS"}

IPROMPT=${IPROMPT:-"नहीं"}


# ये 3 सिग्नल हमारी स्क्रिप्ट को जाल से बाहर निकलने का कारण नहीं बनेंगे "" INT QUIT TSTP


[ "${1}" != "" ] && रनलेवल=${1}


यदि [ "${रनलेवल}" == "" ]; फिर प्रतिध्वनि करें "उपयोग: ${0} ">&2 निकास 1

fi

की छवि


पिछला=${पूर्वस्तर}

[ "${पिछला}" == "" ] && पिछला=एन


अगर [ ! -d /etc/rc.d/rc${runlevel}.d ]; तब

log_info_msg "/etc/rc.d/rc${runlevel}.d मौजूद नहीं है।\n" निकास 1

fi


यदि [ "$रनलेवल" == "6" -o "$रनलेवल" == "0" ]; फिर IPROMPT='नहीं'; फाई


# नोट: ${LOGLEVEL:-7} में, यह ':' 'डैश' '7' है, माइनस 7 नहीं यदि [ "$runlevel" == "S" ]; तब

[ -r /etc/sysconfig/console ] && source /etc/sysconfig/console dmesg -n "${LOGLEVEL:-7}"

fi


यदि [ "${IPROMPT}" == "yes" -a "${runlevel}" == "S" ]; तब

# डिस्ट्रो स्वागत स्ट्रिंग की कुल लंबाई, बिना एस्केप कोड के wlen=${wlen:-$(echo "${DISTRO} में आपका स्वागत है" | wc -c )}welcome_message=${welcome_message:-"${INFO में आपका स्वागत है }${डिस्ट्रो}${सामान्य}"}


# इंटरैक्टिव स्ट्रिंग की कुल लंबाई, एस्केप कोड के बिना ilen=${ilen:-$(echo "इंटरैक्टिव स्टार्टअप में प्रवेश करने के लिए 'I' दबाएं" | wc -c )}

i_message=${i_message:-"इंटरैक्टिव स्टार्टअप में प्रवेश करने के लिए '${FAILURE}I${NORMAL}' दबाएँ"}


# dcol और icol संदेश को केन्द्रित करने के लिए संदेश से पहले रिक्त स्थान हैं

# स्क्रीन पर। itime उपयोगकर्ता द्वारा एक कुंजी दबाने के लिए प्रतीक्षा समय की मात्रा है wcol=$(( ( ${COLUMNS} - ${wlen} ) / 2 ))

icol=$(( ( ${COLUMNS} - ${ilen} ) / 2 )) itime=${itime:-"3"}


इको-ई "\n\n"

इको -ई "\\033[${wcol}G${welcome_message}" इको -e "\\033[${icol}G${i_message}${NORMAL}" इको ""

पढ़ें -t "${itime}" -n 1 इंटरैक्टिव 2>&1 > /dev/null

fi


# लोअर केस बनाएं

[ "${इंटरैक्टिव}" == "मैं" ] && इंटरैक्टिव = "i" [ "${इंटरैक्टिव}" != "i" ] && इंटरएक्टिव = ""


# यदि राज्य फ़ाइल रनलेवल एस से मौजूद है तो उसे पढ़ें

[ -r /var/run/interactive ] && स्रोत /var/run/interactive


# पिछले रनलेवल द्वारा शुरू की गई सभी सेवाओं को रोकने का प्रयास,

# और इस रनलेवल में मारा गया

यदि [ "${पिछला}" != "एन" ]; तब

मेरे लिए $(ls -v /etc/rc.d/rc${runlevel}.d/K* 2> /dev/null) में

check_script_status

यदि [ "${SCRIPT_STAT}" == "1" ]; फिर SCRIPT_STAT='0'

जारी रखने के

fi

की छवि


suffix=${i#/etc/rc.d/rc$runlevel.d/K[0-9][0-9]} prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix sysinit_start=/etc/rc.d/rcS.d/S[0-9][0-9]$suffix


यदि [ "${रनलेवल}" != "0" -a "${रनलेवल}" != "6" ]; तब

अगर [ ! -f ${prev_start} -a ! -f ${sysinit_start} ]; तो MSG='चेतावनी:\n\n${i} नहीं हो सकता'

MSG='${MSG}निष्पादित किया गया क्योंकि यह 'MSG='${MSG}पिछले' MSG='${MSG}रनलेवल (${पिछला})' में शुरू नहीं हुआ था।' log_warning_msg "$MSG"

जारी रखने के

fi

fi


${i} चलाएँ, error_value=${?} रोकें


यदि [ "${error_value}" != "0" ]; फिर print_error_msg; फाई हो गया

fi


यदि [ "${पिछला}" == "एन" ]; फिर IN_BOOT=1 निर्यात करें; फाई


यदि [ "$रनलेवल" == "6" -ए -एन "${फ़ास्टबूट}" ]; फिर /fastboot स्पर्श करें

fi


# इस रनलेवल में सभी फ़ंक्शन प्रारंभ करें

मेरे लिए $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2> /dev/null)

यदि [ "${पिछला}" != "एन" ]; फिर प्रत्यय=${i#/etc/rc.d/rc$runlevel.d/S[0-9][0-9]} stop=/etc/rc.d/rc$runlevel.d/K[0 -9][0-9]$suffix prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix


[ -f ${prev_start} -a ! -f ${stop} ] && जारी रखें

fi


check_script_status

यदि [ "${SCRIPT_STAT}" == "1" ]; फिर SCRIPT_STAT='0'

जारी रखने के

fi


केस ${रनलेवल} 0|6 में)

${i} स्टॉप चलाएँ

;;

*)


esac


${i} प्रारंभ चलाएँ

;;


त्रुटि_मान=${?}



यदि [ "${error_value}" != "0" ]; फिर print_error_msg; फाई हो गया


# रनलेवल एस से स्विच पर इंटरैक्टिव वैरिएबल स्टोर करें और यदि नहीं तो हटा दें यदि [ "${runlevel}" == "S" -a "${interactive}" == "i" ]; तब

इको "इंटरैक्टिव=\"i\"" > /var/run/interactive

अन्य

rm -f /var/run/interactive 2> /dev/null

fi


# बूट लॉग को प्रारंभिक बूट पर ही कॉपी करें

यदि [ "${पिछला}" == "एन" -ए "${रनलेवल}" != "एस" ]; फिर कैट $BOOTLOG >> /var/log/boot.log


# बूट के अंत को चिह्नित करें

प्रतिध्वनि "--------" >> /var/log/boot.log


# अस्थायी फ़ाइल rm -f $BOOTLOG 2> /dev/null हटाएँ

fi


# अंत आरसी

यदि [ "${error_value}" != "0" ]; फिर print_error_msg; फाई हो गया


# रनलेवल एस से स्विच पर इंटरैक्टिव वैरिएबल स्टोर करें और यदि नहीं तो हटा दें यदि [ "${runlevel}" == "S" -a "${interactive}" == "i" ]; तब

इको "इंटरैक्टिव=\"i\"" > /var/run/interactive

अन्य

rm -f /var/run/interactive 2> /dev/null

fi


# बूट लॉग को प्रारंभिक बूट पर ही कॉपी करें

यदि [ "${पिछला}" == "एन" -ए "${रनलेवल}" != "एस" ]; फिर कैट $BOOTLOG >> /var/log/boot.log


# बूट के अंत को चिह्नित करें

प्रतिध्वनि "--------" >> /var/log/boot.log


# अस्थायी फ़ाइल rm -f $BOOTLOG 2> /dev/null हटाएँ

fi


# अंत आरसी


की छवि

की छवि

: जेरार्ड बीकमैन्स - [ईमेल संरक्षित]

: डीजे लुकास - [ईमेल संरक्षित]

: ब्रूस डब्स - [ईमेल संरक्षित]

: जेरार्ड बीकमैन्स - [ईमेल संरक्षित]

: डीजे लुकास - [ईमेल संरक्षित]

: ब्रूस डब्स - [ईमेल संरक्षित]

: एलएफएस 7.0


: मैथियास बेनकमैन के सिंपलइनिट-एमएसबी पर आधारित कोड के साथ http://winterdrache.de/linux/newboot/index.html


फ़ाइल /lib/lsb में स्थित होनी चाहिए

: एलएफएस 7.0


: मैथियास बेनकमैन के सिंपलइनिट-एमएसबी पर आधारित कोड के साथ http://winterdrache.de/linux/newboot/index.html


फ़ाइल /lib/lsb में स्थित होनी चाहिए

OnWorks पर शीर्ष OS क्लाउड कंप्यूटिंग: