D.2. /lib/lsb/init-fonksiyonları
#! / Bin / sh
################################################# #####################
#
# /lib/lsb/init-funtions'ı başlat
#
# Açıklama : Seviye Kontrol Fonksiyonlarını Çalıştır
#
#! / Bin / sh
################################################# #####################
#
# /lib/lsb/init-funtions'ı başlat
#
# Açıklama : Seviye Kontrol Fonksiyonlarını Çalıştır
#
# Yazarlar
#
# Güncelleme
#
# Sürüm
#
# Notlar
#
#
#
#
# Yazarlar
#
# Güncelleme
#
# Sürüm
#
# Notlar
#
#
#
#
################################################# #####################
## Çevresel kurulum
# Ortam umask 022 için varsayılan değerleri ayarlayın
dışa aktar PATH="/bin:/usr/bin:/sbin:/usr/sbin"
## Eko ile kullanılan renk komutlarını ayarlayın
# Lütfen daha fazla bilgi için `man konsol_kodlarına bakın
# "ECMA-48 Set Graphics Redition" bölümünün altında
#
# Uyarı: 8 bitten 9 bit yazı tipine geçerken,
# linux konsolu kalın (1;) ifadesini şu şekilde yeniden yorumlayacaktır:
################################################# #####################
## Çevresel kurulum
# Ortam umask 022 için varsayılan değerleri ayarlayın
dışa aktar PATH="/bin:/usr/bin:/sbin:/usr/sbin"
## Eko ile kullanılan renk komutlarını ayarlayın
# Lütfen daha fazla bilgi için `man konsol_kodlarına bakın
# "ECMA-48 Set Graphics Redition" bölümünün altında
#
# Uyarı: 8 bitten 9 bit yazı tipine geçerken,
# linux konsolu kalın (1;) ifadesini şu şekilde yeniden yorumlayacaktır:
# 256bit yazı tipinin ilk 9 glifi. Bu yapar
# çerçeve arabelleği konsollarını etkilemez
NORMAL="\\033[0;39m" # Standart konsol grisi BAŞARI="\\033[1;32m" # Başarı yeşildir UYARI="\\033[1;33m" # Uyarılar sarı FAILURE="\\ 033[1;31m" # Arızalar kırmızı INFO="\\033[1;36m" # Bilgi açık camgöbeği BRACKET="\\033[1;34m" # Köşeli ayraçlar mavi
# Renkli bir önek kullanın BMPREFIX=" "
BAŞARILI_PREFIX="${BAŞARI} * ${NORMAL} " BAŞARISIZ_PREFIX="${ARIZA}*****${NORMAL} " WARNING_PREFIX="${UYARI} *** ${NORMAL} " SKIP_PREFIX="${ BİLGİ} S ${NORMAL}"
SUCCESS_SUFFIX="${BRACKET}[${BAŞARI} TAMAM ${BRACKET}]${NORMAL}" FAILURE_SUFFIX="${BRACKET}[${FAILURE} BAŞARISIZ ${BRACKET}]${NORMAL}" WARNING_SUFFIX="$ {BRACKET}[${UYARI} WARN ${BRACKET}]${NORMAL}" SKIP_SUFFIX="${BRACKET}[${BİLGİ} ATLA ${BRACKET}]${NORMAL}"
BOOTLOG=/run/bootlog KILLDELAY=3 SCRIPT_STAT="0"
# Kullanıcı tarafından belirlenen herhangi bir ortam değişkenini ayarlayın, örneğin HEADLESS [ -r /etc/sysconfig/rc.site ] && . /etc/sysconfig/rc.site
## Ekran Boyutları
# Mevcut ekran boyutunu bulun eğer [ -z "${COLUMNS}" ]; sonra
COLUMNS=$(stty boyutu) COLUMNS=${COLUMNS##* }
fi
# Seri bağlantı noktası gibi uzak bağlantılar kullanıldığında, [ "${COLUMNS}" = "0" ]; sonra
SÜTUN=80
fi
## Konumlandırma sonuç mesajları için ölçümler COL=$((${COLUMNS} - 8))
WCOL=$((${COL} - 2))
## İmleç Konumu Komutlarını Ayarla, echo SET_COL="\\033[${COL}G" # ile $COL karakterinde kullanılır SET_WCOL="\\033[${WCOL}G" # $WCOL karakterinde CURS_UP= "\\033[1A\\033[0G" # Bir satır yukarı, 0'inci karakterde CURS_ZERO="\\033[0G"
################################################## ##############################
# start_daemon() #
# Kullanım: start_daemon [-f] [-n nicelevel] [-p pidfile] yol adı [args...] #
# #
# Amaç: Belirtilen programı bir arka plan programı olarak çalıştırır #
# #
# Girişler: -f: (zorla) zaten çalışıyor olsa bile programı çalıştırın. #
# -n nicelevel: iyi bir seviye belirtin. 'İyi adam (1)' konusuna bakın. #
# -p pidfile: PID'leri belirlemek için belirtilen dosyayı kullanın. #
# yol adı: belirtilen programın tam yolu #
# argümanlar: programa iletilen ek argümanlar (yol adı) #
# #
# Dönüş değerleri (LSB çıkış kodları tarafından tanımlandığı gibi): #
# 0 - program çalışıyor veya servis iyi #
# 1 - genel veya belirtilmemiş hata #
# 2 - geçersiz veya aşırı argüman(lar) #
# 5 - program kurulu değil #
################################################## ##############################
start_daemon()
{
local force="" local nice="0" local pidfile="" local pidlist="" local retval=""
# İşlem argümanları doğru iken
do
durumda "${1}"
-F)
kuvvet = "1" vardiya 1
;;
-N)
nice="${2}" 2. vardiya
;;
-P)
pidfile="${2}" 2. vardiya
;;
-*)
2 döndür
;;
yapılmış
*)
esac
program="${1}" ara
;;
# Geçerli bir program olup olmadığını kontrol edin
Eğer [ ! -e "${program}" ]; sonra 5 döndür; fi
# Uygulamak
if [ -z "${force}" ]; sonra
if [ -z "${pidfile}" ]; sonra
# Keşfetmeye göre pid'i belirleyin pidlist=`pidofproc "${1}"` retval="${?}"
başka
# PID dosyası gerekli PID'leri içerir
# LSB gereksinimine göre yolun pidofproc'a verilmesi gerektiğine dikkat edin,
# ancak mevcut uygulama veya standart tarafından kullanılmamaktadır. pidlist=`pidofproc -p "${pidfile}" "${1}"`
retval="${?}"
fi
# SADECE bir değer döndür
# Bu, init betiğinin (veya dağıtımın işlevlerinin) sorumluluğundadır.
# mesajları günlüğe kaydetmek için! durumda "${retval}"
0)
# Program zaten doğru çalışıyor, bu bir
#başarılı başlangıç. 0 döndür
;;
1)
# Program çalışmıyor, ancak geçersiz bir pid dosyası var
# pid dosyasını kaldırın ve rm -f "${pidfile}" ile devam edin
;;
3)
# Program çalışmıyor ve pid dosyası yok
# burada hiçbir şey yapmayın, start_deamon devam etsin.
;;
*)
esac
fi
# Durum değerleri tarafından döndürülen diğerleri yorumlanmayacaktır
# ve belirtilmemiş bir hata olarak döndürüldü. dönüş 1
;;
# Başla!
nice -n "${Güzel}" "${@}"
}
################################################## ##############################
# killproc() #
# Kullanım: killproc [-p pidfile] yol adı [sinyal] #
# #
# Amaç: Çalışan işlemlere kontrol sinyalleri göndermek #
# #
# Girdiler: -p pidfile, belirtilen pid dosyasını kullanır #
# yol adı, belirtilen programın yol adı #
# sinyal, bu sinyali yol adına gönder #
# #
# Dönüş değerleri (LSB çıkış kodları tarafından tanımlandığı gibi): #
# 0 - program (yol adı) durdu/zaten durduruldu veya bir #
# | çalışan program belirtilen gönderildi | sinyal ve | durdu | # | |
# | başarılı olarak | # | |||
# | 1 | - genel veya belirtilmemiş hata | # | ||
# | 2 | - geçersiz veya aşırı argüman(lar) | # | ||
# | 5 | - program yüklü değil | # | ||
# | 7 | - program çalışmıyor ve bir sinyal | Verilen | # |
################################################## ##############################
öldürme işlemi()
{
yerel pidfile yerel program yerel önek yerel progname
local sinyal = "-TERM" yerel geri dönüş = "-KILL" yerel nosig
yerel pid listesi yerel retval yerel pid
yerel gecikme = "30" yerel piddead yerel dtime
# İşlem argümanları doğru iken; yapmak
durumda "${1}"
-P)
pidfile="${2}" 2. vardiya
;;
*)
program="${1}"
if [-n "${2}" ]; sonra sinyal="${2}" geri dönüş=""
başka
nosig=1
fi
# Ek argümanlarda hata, eğer [ -n "${3}" ]; sonra
2 döndür
başka
kırılma
yapılmış
fi
;;
esac
# Geçerli bir program olup olmadığını kontrol edin
Eğer [ ! -e "${program}" ]; sonra 5 döndür; fi
# Geçerli bir sinyal olup olmadığını kontrol edin check_signal "${signal}"
if [ "${?}" -ne "0" ]; sonra 2 döndür; fi
# pidlerin bir listesini alın
if [ -z "${pidfile}" ]; sonra
# keşifle pid'i belirleyin pidlist=`pidofproc "${1}"` retval="${?}"
başka
# PID dosyası gerekli PID'leri içerir
# LSB gereksinimine göre yolun pidofproc'a verilmesi gerektiğine dikkat edin,
# ancak mevcut uygulama veya standart tarafından kullanılmamaktadır. pidlist=`pidofproc -p "${pidfile}" "${1}"`
retval="${?}"
fi
# SADECE bir değer döndür
# Bu, init betiğinin (veya dağıtımın işlevlerinin) sorumluluğundadır.
# mesajları günlüğe kaydetmek için! durumda "${retval}"
0)
# Program düzgün çalışıyor
# Burada hiçbir şey yapmayın, killproc devam etsin.
;;
1)
# Program çalışmıyor, ancak geçersiz bir pid dosyası var
# pid dosyasını kaldırın. rm -f "${pidfile}"
# Bu, yalnızca sinyal iletilmediği takdirde başarılı olur. if [ -n "${nosig}" ]; sonra
0 döndür
başka
7 döndür
fi
;;
3)
# Program çalışmıyor ve pid dosyası yok
# Bu, yalnızca sinyal iletilmediği takdirde başarılı olur. if [ -n "${nosig}" ]; sonra
0 döndür
başka
7 döndür
fi
;;
*)
esac
# Durum değerleri tarafından döndürülen diğerleri yorumlanmayacaktır
# ve belirtilmemiş bir hata olarak döndürüldü. dönüş 1
;;
# Çıkış sinyalleri ve kontrol sinyalleri için farklı eylemler gerçekleştirin check_sig_type "${signal}"
if [ "${?}" -eq "0" ]; daha sonra programı sonlandırmak için # Signal kullanılır
# Boş pidlist hesabı (pid dosyası hala var ve hayır
# sinyal verildi)
if [ "${pidlist}" != "" ]; sonra
# ${pidlist} içindeki pid için pid listesini öldür; yapmak
kill -0 "${pid}" 2> /dev/null if [ "${?}" -ne "0" ]; sonra
# İşlem öldü, bir sonrakine devam edin ve her şeyin yolunda olduğunu varsayalım devam edin
başka
öldür "${signal}" "${pid}" 2> /dev/null
# "${pid}" için ${delay}/10 saniyeye kadar bekleyin
# saniyenin 10'unda sonlandır
while [ "${gecikme}" -ne "0" ]; yapmak
öldür -0 "${pid}" 2> /dev/null || piddead="1" if [ "${piddead}" = "1" ]; sonra kır; fi uyku 0.1
gecikme="$(( ${gecikme} - 1 ))"
yapılmış
# Bir geri dönüş ayarlanmışsa ve program hala çalışıyorsa,
# geri dönüşü kullan
if [-n "${fallback}" -a "${piddead}" != "1" ]; sonra "${fallback}" "${pid}" 2> /dev/null'u öldürün
1 uyku
# Tekrar kontrol edin ve kill -0 "${pid}" 2> /dev/null && return 1 hala çalışıyorsa başarısız olun
fi
fi
yapılmış
fi
# Eski PID dosyalarını kontrol edin ve kaldırın. if [ -z "${pidfile}" ]; sonra
# $programın temel adını bulun
önek=`echo "${program}" | sed 's/[^/]*$//'` progname=`echo "${program}" | sed "s@${prefix}@@"`
if [ -e "/var/run/${progname}.pid" ]; sonra
rm -f "/var/run/${progname}.pid" 2> /dev/null
fi
başka
if [ -e "${pidfile}" ]; sonra rm -f "${pidfile}" 2> /dev/null; fi
fi
# Bir programın çıkmasını beklemeyen sinyaller için
# kill'in işini yapmasına izin verin ve kill'in değer getirisini değerlendirin
else# check_sig_type - ${pidlist} içindeki pid için programı sonlandırmak için sinyal kullanılmaz; yapmak
"${signal}" "${pid}" öldür
if [ "${?}" -ne "0" ]; sonra 1 döndür; fi
yapılmış
fi
}
################################################## ##############################
#pidofproc() #
# Kullanım: pidofproc [-p pidfile] yol adı #
# #
# Amaç: Bu işlev, belirli bir arka plan programı için bir veya daha fazla pid(ler) döndürür #
# #
# Girdiler: -p pidfile, pidof yerine belirtilen pidfile dosyasını kullanın #
# yol adı, belirtilen programın yolu #
# #
# Dönüş değerleri (LSB durum kodları tarafından tanımlandığı gibi): #
# 0 - Başarı (PID'lerden stdout'a) #
# 1 - Program öldü, PID dosyası hala var (kalan PID çıktısı) #
# 3 - Program çalışmıyor (çıktı yok) #
################################################## ##############################
pidofproc()
{
yerel pidfile yerel program yerel önek yerel progname yerel pidlist yerel lpidler
yerel çıkış durumu = "0"
# İşlem argümanları doğru iken; yapmak
durumda "${1}"
-P)
pidfile="${2}" 2. vardiya
;;
*)
program="${1}"
if [ -n "${2}" ]; sonra
# Çok fazla tartışma
# Bu durum olduğundan, bilinmeyen dönüş 4'ü döndür
başka
kırılma
yapılmış
fi
;;
esac
# Bir PID dosyası belirtilmemişse, bir tane bulmaya çalışın. if [ -z "${pidfile}" ]; sonra
# Programın temel adını alın
önek=`echo "${program}" | sed 's/[^/]*$//'` if [ -z "${prefix}" ]; sonra
progname="${program}" başka
progname=`echo "${program}" | sed "s@${prefix}@@"`
fi
# Bu ada sahip bir PID dosyası varsa, o olduğunu varsayın. if [ -e "/var/run/${progname}.pid" ]; sonra
pidfile="/var/run/${progname}.pid"
fi
fi
# Bir PID dosyası ayarlanmış ve mevcutsa onu kullanın.
if [ -n "${pidfile}" -a -e "${pidfile}" ]; sonra
# pidlist=`/bin/head -n1 "${pidfile}"` pid dosyasının ilk satırındaki değeri kullanın
# Bu isteğe bağlı olarak 'head -n1' yerine 'sed 1q' olarak yazılabilir.
# LFS /bin/head'i /usr/bin/head'e taşımalı
başka
# pidof'u kullan
pidlist=`pidof "${program}"`
fi
# Listelenen tüm PID'lerin çalışıp çalışmadığını belirleyin. ${pidlist} içindeki pid için; yapmak
öldür -0 ${pid} 2> /dev/null
if ["${?}" -eq "0" ]; sonra lpids="${lpids}${pid} "
başka
çıkış durumu = "1"
fi
yapılmış
if [-z "${lpids}" -a ! -f "${pidfile}" ]; sonra geri 3
başka
echo "${lpids}"
"${exitstatus}" döndür
fi
}
################################################## ##############################
# durum proc() #
# Kullanım: statusproc [-p pidfile] yol adı #
# #
# Amaç: Bu işlev belirli bir arka plan programının durumunu stdout'a yazdırır #
# #
# Girdiler: -p pidfile, pidof yerine belirtilen pidfile dosyasını kullanın #
# yol adı, belirtilen programın yolu #
# #
# Dönüş değerleri: #
# 0 - Durum yazdırıldı #
# 1 - Giriş hatası. Kontrol edilecek arka plan programı belirtilmedi. #
################################################## ##############################
durum proc()
{
yerel pid dosyası yerel pid listesi
if [ "${#}" = "0" ]; sonra
echo "Kullanım: statusproc [-p pidfle] {program}" çıkış 1
fi
# İşlem argümanları doğru iken; yapmak
durumda "${1}"
-P)
pidfile="${2}" 2. vardiya
;;
*)
if [ -n "${2}" ]; sonra
echo "Çok fazla argüman" dönüş 1
başka
kırılma
yapılmış
fi
;;
esac
if [ -n "${pidfile}" ]; sonra pidlist=`pidofproc -p "${pidfile}" $@`
başka
pidlist=`pidofproc $@`
fi
# Sondaki boşlukları kırp
pidlist=`echo "${pidlist}" | sed -r 's/ +$//'` base="${1##*/}"
if [ -n "${pidlist}" ]; sonra
/bin/echo -e "${INFO}${base}, Process ile çalışıyor" \ "ID(ler) ${pidlist}.${NORMAL}"
başka
if [ -n "${base}" -a -e "/var/run/${base}.pid" ]; sonra
/bin/echo -e "${UYARI}${1} çalışmıyor ancak" \ "/var/run/${base}.pid var.${NORMAL}"
başka
if [ -n "${pidfile}" -a -e "${pidfile}" ]; sonra
/bin/echo -e "${UYARI}${1} çalışmıyor" \ "ama ${pidfile} var.${NORMAL}"
başka
/bin/echo -e "${INFO}${1} çalışmıyor.${NORMAL}"
fi
fi
fi
}
################################################## ##############################
# zaman belirtimi() #
# #
# Amaç: Bir zaman damgasını biçimlendirmek için dahili bir yardımcı program işlevi #
# bir önyükleme günlüğü dosyası. STAMP değişkenini ayarlar. #
# #
# Dönüş değeri: Kullanılmıyor #
################################################## ##############################
zaman belirtimi()
{
STAMP="$(echo `date +"%b %d %T %:z"` `hostname`) " 0 döndür
}
################################################## ##############################
# log_success_msg() #
# Kullanım: log_success_msg ["mesaj"] #
# #
# Amaç: Ekrana başarılı bir durum mesajı yazdırın ve #
# bir önyükleme günlüğü dosyası. #
# #
# Girdiler: $@ - Mesaj #
# #
# Dönüş değerleri: Kullanılmıyor #
################################################## ##############################
log_success_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
# Yazdırılamayan karakterleri günlük dosyasından çıkarın logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
zaman belirtimi
/bin/echo -e "${STAMP} ${logmessage} Tamam" >> ${BOOTLOG}
0 döndür
}
log_success_msg2()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" echo " Tamam" >> ${BOOTLOG}
0 döndür
}
################################################## ##############################
# log_failure_msg() #
# Kullanım: log_failure_msg ["mesaj"] #
# #
# Amaç: Ekrana bir arıza durumu mesajı yazdırın ve #
# bir önyükleme günlüğü dosyası. #
# #
# Girdiler: $@ - Mesaj #
# #
# Dönüş değerleri: Kullanılmıyor #
################################################## ##############################
log_failure_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
# Yazdırılamayan karakterleri günlük dosyası zaman belirtiminden çıkarın
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -e "${DAMGA} ${logmessage} BAŞARISIZ" >> ${BOOTLOG}
0 döndür
}
log_failure_msg2()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" echo "BAŞARISIZ" >> ${BOOTLOG}
0 döndür
}
################################################## ##############################
# log_warning_msg() #
# Kullanım: log_warning_msg ["mesaj"] #
# #
# Amaç: Ekrana bir uyarı durum mesajı yazdırın ve #
# bir önyükleme günlüğü dosyası. #
# #
# Dönüş değerleri: Kullanılmıyor #
################################################## ##############################
log_warning_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"
# Yazdırılamayan karakterleri günlük dosyasından çıkarın logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` zaman belirtimi
/bin/echo -e "${STAMP} ${logmessage} UYARI" >> ${BOOTLOG}
0 döndür
}
log_skip_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"
# Yazdırılamayan karakterleri günlük dosyasından çıkarın logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo "SKIP" >> ${BOOTLOG}
0 döndür
}
################################################## ##############################
# log_info_msg() #
# Kullanım: log_info_msg mesajı #
# #
# Amaç: Ekrana bir bilgi mesajı yazdırın ve #
# bir önyükleme günlüğü dosyası. Sondaki yeni satır karakterini yazdırmaz. #
# #
# Dönüş değerleri: Kullanılmıyor #
################################################## ##############################
log_info_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
# Yazdırılamayan karakterleri günlük dosyasından çıkarın logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` zaman belirtimi
/bin/echo -n -e "${DAMGA} ${logmessage}" >> ${BOOTLOG}
0 döndür
}
log_info_msg2()
{
/bin/echo -n -e "${@}"
# Yazdırılamayan karakterleri günlük dosyasından çıkarın logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -n -e "${logmessage}" >> ${BOOTLOG}
0 döndür
}
################################################## ##############################
# değerlendirme_retval() #
# Kullanım: Bir dönüş değeri değerlendirin ve uygun şekilde başarı veya başarısızlığı yazdırın #
# #
# Amaç: Bir bilgi mesajını sonlandırmak için kolaylık işlevi #
# #
# Dönüş değerleri: Kullanılmıyor #
################################################## ##############################
değerlendirmek_retval()
{
yerel error_value="${?}"
if [ ${hata_değeri} = 0 ]; sonra log_success_msg2
başka
log_failure_msg2
fi
}
################################################## ##############################
# check_signal() #
# Kullanım: check_signal [ -{signal} | {sinyal} ] #
# #
# Amaç: Geçerli bir sinyal olup olmadığını kontrol edin. Bu, herhangi bir LSB taslağı tarafından tanımlanmamıştır, #
# ancak, # olup olmadığını belirlemek için sinyalleri kontrol etmek gerekir.
# seçilen sinyaller, diğer işlevler için geçersiz argümanlardır. #
# #
# Girişler: -{signal} veya {signal} biçimindeki tek bir dize değerini kabul eder #
# #
# Dönüş değerleri: #
# 0 - Başarılı (sinyal geçerli #
# 1 - Sinyal geçerli değil #
################################################## ##############################
kontrol_sinyal()
{
yerel valsig
# Geçersiz sinyaller için hata işleme ekleyin
valsig="-ALRM -HUP -INT -KILL -PIPE -POLL -PROF -TERM -USR1 -USR2" valsig="${valsig} -VTALRM -STKFLT -PWR -WINCH -CHLD -URG -TSTP -TTIN" valsig= "${valsig} -TTOU -STOP -CONT -ABRT -FPE -ILL -QUIT -SEGV -TRAP" valsig="${valsig} -SYS -EMT -BUS -XCPU -XFSZ -0 -1 -2 -3 - 4 -5 -6 -8 -9"
valsig="${valsig} -11 -13 -14 -15"
yankı "${valsig}" | grep -- " ${1} " > /dev/null if [ "${?}" -eq "0" ]; sonra
0 döndür
başka
1 döndür
fi
}
################################################## ##############################
# check_sig_type() #
# Kullanım: check_signal [ -{signal} | {sinyal} ] #
# #
# Amaç: Sinyalin bir program sonlandırma sinyali mi yoksa bir kontrol sinyali mi olduğunu kontrol edin #
# Bu herhangi bir LSB taslağı tarafından tanımlanmamıştır, ancak #
# sinyallerin bir sona erdirilmesinin amaçlanıp amaçlanmadığını belirlemek için sinyalleri kontrol edin #
# program veya basitçe kontrol etmek için. #
# #
# Girişler: -{signal} veya {signal} biçimindeki tek bir dize değerini kabul eder #
# #
# Dönüş değerleri: #
# 0 - Program sonlandırma için sinyal kullanılır #
# 1 - Program kontrolü için sinyal kullanılır #
################################################## ##############################
check_sig_type()
{
yerel valsig
# Sonlandırma sinyallerinin listesi (genel olarak kullanılan öğelerle sınırlıdır) valsig="-ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2 -3 -6 -9 -14 -15"
yankı "${valsig}" | grep -- " ${1} " > /dev/null if [ "${?}" -eq "0" ]; sonra
0 döndür
başka
1 döndür
fi
}
################################################## ##############################
# kullanıcı için_bekle() #
# #
# Amaç: Başsız bir sistem değilse kullanıcının yanıt vermesini bekleyin #
# #
################################################## ##############################
wait_for_user()
{
# Varsayılan olarak kullanıcıyı bekleyin
[ "${HEADLESS=0}" = "0" ] && ENTER oku
0 döndür
}
################################################## ##############################
# doğru() #
# #
# Amaç: Bir değişkenin doğru olup olmadığını test etmek için yardımcı program | evet | 1 #
# #
################################################## ##############################
doğru()
{
[ "$1" = "1" ] || [ "$1" = "evet" ] || [ "$1" = "doğru" ] || [ "$1" = "y" ] || [ "$1" = "t" ]
}
# /lib/lsb/init-fonksiyonlarını sonlandır
0 döndür
başka
1 döndür
fi
}
################################################## ##############################
# kullanıcı için_bekle() #
# #
# Amaç: Başsız bir sistem değilse kullanıcının yanıt vermesini bekleyin #
# #
################################################## ##############################
wait_for_user()
{
# Varsayılan olarak kullanıcıyı bekleyin
[ "${HEADLESS=0}" = "0" ] && ENTER oku
0 döndür
}
################################################## ##############################
# doğru() #
# #
# Amaç: Bir değişkenin doğru olup olmadığını test etmek için yardımcı program | evet | 1 #
# #
################################################## ##############################
doğru()
{
[ "$1" = "1" ] || [ "$1" = "evet" ] || [ "$1" = "doğru" ] || [ "$1" = "y" ] || [ "$1" = "t" ]
}
# /lib/lsb/init-fonksiyonlarını sonlandır
: 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
:LFS 7.0
Mountvirtfs
Mountvirtfs
S
S