OnWorks Linux ve Windows Çevrimiçi İş İstasyonları

Logo

İş İstasyonları için Çevrimiçi Ücretsiz Barındırma

<Önceki | İçerik | Sonraki>

D.1. /etc/rc.d/init.d/rc‌

The rc komut dosyası, init tarafından çağrılan ilk komut dosyasıdır ve önyükleme işlemini başlatır.

görüntü

#! / Bin / bash

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

# rc'ye başla

#

# Açıklama : Ana Çalışma Seviyesi Kontrol Komut Dosyası

#

# Yazarlar: Gerard Beekmans - [e-posta korumalı]

# : DJ Lucas - [e-posta korumalı]

# Güncelleme: Bruce Dubbs - [e-posta korumalı]

#

# Sürüm : LFS 7.0

#

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

. /lib/lsb/init-fonksiyonları print_error_msg()

{

log_failure_msg

# $i çağrıldığında ayarlanır

MSG="FAILURE:\n\nBu hata mesajını okumamalısınız.\n\n" MSG="${MSG}Bu,\n" MSG="${MSG}${ içinde öngörülemeyen bir hatanın meydana geldiği anlamına gelir. içinde"

MSG="${MSG}${error_value} dönüş değeriyle çıktı.\n"


MSG="${MSG}Bu hatayı,\n" MSG="${MSG}${DISTRO_MINI} kitabı tarafından sağlanan dosyalardan birinde bir hataya kadar takip edebiliyorsanız,\n" MSG=" ${MSG}lütfen bizi ${DISTRO_CONTACT} numaralı telefondan bilgilendirin.\n" log_failure_msg "${MSG}"


log_info_msg "Devam etmek için Enter'a basın..." wait_for_user

}


check_script_status()

{

# $i çağrıldığında ayarlanır if [ ! -f ${i} ]; sonra

log_warning_msg "${i} geçerli bir sembolik bağlantı değil." SCRIPT_STAT="1"

fi


Eğer [ ! -x ${i} ]; sonra

görüntü


log_warning_msg "${i} yürütülebilir değil, atlanıyor." SCRIPT_STAT="1"

fi

}


Çalıştırmak()

{

if [ -z $etkileşimli ]; sonra

${1} ${2}

iade $?

fi


doğru iken; yapmak

read -p "${1} ${2} çalıştırılsın mı (Evet/hayır/devam)? " -n 1 runit echo


c'de ${runit} durumu | C)

etkileşimli=""

${i} ${2}

ret=${?} ara;

;;


n | N)

0 döndür

;;


y | E)

${i} ${2}

ret=${?} ara

;;

esac bitti


iade $ret

}


# Herhangi bir yerel ayarı/geçersiz kılmayı okuyun

[ -r /etc/sysconfig/rc.site ] && kaynak /etc/sysconfig/rc.site


DISTRO=${DISTRO:-"Sıfırdan Linux"}

DISTRO_CONTACT=${DISTRO_CONTACT:-"[e-posta korumalı] (Kayıt gerekli)"} DISTRO_MINI=${DISTRO_MINI:-"LFS"}

IPROMPT=${IPROMPT:-"hayır"}


# Bu 3 sinyal, komut dosyamızın "" tuzağından çıkmasına neden olmaz INT QUIT TSTP


[ "${1}" != "" ] && çalışma düzeyi=${1}


if [ "${çalışma düzeyi}" == "" ]; ardından yankı "Kullanım: ${0} " >&2 çıkış 1

fi

görüntü


önceki=${PREVLEVEL}

[ "${önceki}" == "" ] && önceki=N


Eğer [ ! -d /etc/rc.d/rc${runlevel}.d ]; sonra

log_info_msg "/etc/rc.d/rc${runlevel}.d mevcut değil.\n" çıkış 1

fi


if [ "$runlevel" == "6" -o "$runlevel" == "0" ]; ardından IPROMPT="hayır"; fi


# Not: ${LOGLEVEL:-7}'de, ':' 'tire' '7', eksi 7 değil if [ "$runlevel" == "S" ]; sonra

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

fi


if [ "${IPROMPT}" == "evet" -a "${çalışma düzeyi}" == "S" ]; sonra

# Dağıtım karşılama dizesinin kaçış kodları olmadan toplam uzunluğu wlen=${wlen:-$(echo "${DISTRO}'ya Hoş Geldiniz" | wc -c )} Welcome_message=${welcome_message:-"${INFO'ya Hoş Geldiniz }${DISTRO}${NORMAL}"}


# Kaçış kodları olmadan etkileşimli dizenin toplam uzunluğu ilen=${ilen:-$(echo "Etkileşimli başlatmaya girmek için 'I' tuşuna basın" | wc -c )}

i_message=${i_message:-"Etkileşimli başlatmaya girmek için '${FAILURE}I${NORMAL}' tuşuna basın"}


# dcol ve icol, mesajı ortalamak için mesajdan önceki boşluklardır

# ekranda. itime, kullanıcının bir tuşa basması için bekleme süresidir wcol=$(( ( ${COLUMNS} - ${wlen} ) / 2 ))

icol=$(( ( ${SÜTÜN} - ${ilen} ) / 2 )) süre=${zaman:-"3"}


yankı -e "\n\n"

echo -e "\\033[${wcol}G${welcome_message}" echo -e "\\033[${icol}G${i_message}${NORMAL}" echo ""

read -t "${itime}" -n 1 etkileşimli 2>&1 > /dev/null

fi


# Küçük harf yap

[ "${etkileşimli}" == "Ben" ] && etkileşimli="i" [ "${etkileşimli}" != "i" ] && etkileşimli=""


# S çalışma seviyesinden mevcutsa durum dosyasını okuyun

[ -r /var/run/interactive ] && source /var/run/interactive


# Bir önceki çalışma seviyesi tarafından başlatılan tüm hizmetleri durdurmaya çalışmak,

# ve bu çalışma seviyesinde öldürüldü

if [ "${önceki}" != "N" ]; sonra

i için $(ls -v /etc/rc.d/rc${runlevel}.d/K* 2> /dev/null) yapın

check_script_status

if [ "${SCRIPT_STAT}" == "1" ]; sonra SCRIPT_STAT="0"

devam etmek

fi

görüntü


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


if [ "${runlevel}" != "0" -a "${runlevel}" != "6" ]; sonra

Eğer [ ! -f ${prev_start} -a ! -f ${sysinit_start} ]; o zaman MSG="UYARI:\n\n${i} olamaz "

MSG="${MSG}yürütüldü çünkü " MSG="${MSG}önceki " MSG="${MSG}çalışma düzeyinde (${önceki})." log_warning_msg "$MSG"

devam etmek

fi

fi


${i} çalıştır error_value=${?} durdur


if [ "${hata_değeri}" != "0" ]; sonra print_error_msg; bitti

fi


if [ "${önceki}" == "N" ]; sonra IN_BOOT=1 dışa aktarın; fi


if [ "$runlevel" == "6" -a -n "${FASTBOOT}" ]; ardından /fastboot'a dokunun

fi


# Bu çalışma seviyesindeki tüm fonksiyonları başlat

i için $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2> /dev/null) do

if [ "${önceki}" != "N" ]; ardından sonek=${i#/etc/rc.d/rc$runlevel.d/S[0-9][0-9]} stop=/etc/rc.d/rc$runlevel.d/K[0 -9][0-9]$sonek prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$sonek


[ -f ${prev_start} -a ! -f ${stop} ] && devam et

fi


check_script_status

if [ "${SCRIPT_STAT}" == "1" ]; sonra SCRIPT_STAT="0"

devam etmek

fi


0|6'da ${runlevel} durumu

${i} durdur

;;

*)


esac


${i} çalıştır

;;


error_value=${?}



if [ "${hata_değeri}" != "0" ]; sonra print_error_msg; bitti


# Etkileşimli değişkeni S çalışma seviyesinden anahtarda saklayın ve değilse [ "${runlevel}" == "S" -a "${interactive}" == "i" ]; sonra

echo "interactive=\"i\"" > /var/run/interactive

başka

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

fi


# Önyükleme günlüğünü yalnızca ilk önyüklemede kopyalayın

if [ "${önceki}" == "N" -a "${çalışma düzeyi}" != "S" ]; sonra cat $BOOTLOG >> /var/log/boot.log


# Önyüklemenin sonunu işaretleyin

echo "-------" >> /var/log/boot.log


# Geçici dosyayı rm -f $BOOTLOG 2> /dev/null kaldırın

fi


# rc'yi bitir

if [ "${hata_değeri}" != "0" ]; sonra print_error_msg; bitti


# Etkileşimli değişkeni S çalışma seviyesinden anahtarda saklayın ve değilse [ "${runlevel}" == "S" -a "${interactive}" == "i" ]; sonra

echo "interactive=\"i\"" > /var/run/interactive

başka

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

fi


# Önyükleme günlüğünü yalnızca ilk önyüklemede kopyalayın

if [ "${önceki}" == "N" -a "${çalışma düzeyi}" != "S" ]; sonra cat $BOOTLOG >> /var/log/boot.log


# Önyüklemenin sonunu işaretleyin

echo "-------" >> /var/log/boot.log


# Geçici dosyayı rm -f $BOOTLOG 2> /dev/null kaldırın

fi


# rc'yi bitir


görüntü

görüntü

: Gerard Beekmans - [e-posta korumalı]

: DJ Lucas- [e-posta korumalı]

: Bruce Dubbs- [e-posta korumalı]

: Gerard Beekmans - [e-posta korumalı]

: DJ Lucas- [e-posta korumalı]

: Bruce Dubbs- [e-posta korumalı]

:LFS 7.0


: Matthias Benkmann'ın simpleinit-msb'sine dayalı kod ile http://winterdrache.de/linux/newboot/index.html


Dosya /lib/lsb içinde bulunmalıdır

:LFS 7.0


: Matthias Benkmann'ın simpleinit-msb'sine dayalı kod ile http://winterdrache.de/linux/newboot/index.html


Dosya /lib/lsb içinde bulunmalıdır

OnWorks'te En İyi OS Bulut Bilişimi: