<Poprzedni | Spis treści | Następne>
D.2. /lib/lsb/init-funkcje
#! / Bin / sh
################################################## ######################
#
# Rozpocznij /lib/lsb/init-funkcje
#
# Opis: Funkcje kontroli poziomu pracy
#
#! / Bin / sh
################################################## ######################
#
# Rozpocznij /lib/lsb/init-funkcje
#
# Opis: Funkcje kontroli poziomu pracy
#
# Autorzy
#
# Aktualizacja
#
# Wersja
#
# Notatki
#
#
#
#
# Autorzy
#
# Aktualizacja
#
# Wersja
#
# Notatki
#
#
#
#
################################################## ######################
## Konfiguracja środowiska
# Skonfiguruj domyślne wartości dla środowiska umask 022
export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
## Ustaw komendy kolorów, używane przez echo
# Więcej informacji można znaleźć w podręczniku `man console_codes
# w sekcji „ECMA-48 Set Graphics Redition”.
#
# Ostrzeżenie: podczas przełączania z czcionki 8-bitowej na 9-bitową,
# konsola linux zreinterpretuje pogrubienie (1;) na
################################################## ######################
## Konfiguracja środowiska
# Skonfiguruj domyślne wartości dla środowiska umask 022
export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
## Ustaw komendy kolorów, używane przez echo
# Więcej informacji można znaleźć w podręczniku `man console_codes
# w sekcji „ECMA-48 Set Graphics Redition”.
#
# Ostrzeżenie: podczas przełączania z czcionki 8-bitowej na 9-bitową,
# konsola linux zreinterpretuje pogrubienie (1;) na
# 256 najlepszych glifów czcionki 9-bitowej. To ma
# nie wpływa na konsole bufora ramki
NORMAL="\\033[0;39m" # Konsola standardowa szara SUCCESS="\\033[1;32m" # Sukces jest zielony WARNING="\\033[1;33m" # Ostrzeżenia są żółte FAILURE="\\033[1;31m" # Błędy są czerwone INFO="\\033[1;36m" # Informacje są jasnobłękitne BRACKET="\\033[1;34m" # Wsporniki są niebieskie
# Użyj kolorowego przedrostka BMPREFIX=" "
SUCCESS_PREFIX="${SUCCESS} * ${NORMALNY} "FAILURE_PREFIX="${FAILURE}*****${NORMALNY} " WARNING_PREFIX="${OSTRZEŻENIE} *** ${NORMALNY} " SKIP_PREFIX="${INFO} S ${NORMALNY}"
SUCCESS_SUFFIX="${BRACKET}[${SUCCESS} OK ${BRACKET}]${NORMALNY}" FAILURE_SUFFIX="${BRACKET}[${FAILURE} FAIL ${BRACKET}]${NORMALNY}" WARNING_SUFFIX="${BRACKET}[${OSTRZEŻENIE} OSTRZEŻ ${BRACKET}]${NORMALNY}" SKIP_SUFFIX="${ BRACKET}[${INFO} POMIŃ ${BRACKET}]${NORMALNY}"
BOOTLOG=/run/bootlog KILLDELAY=3 SCRIPT_STAT="0"
# Ustaw dowolne zmienne środowiskowe określone przez użytkownika, np. HEADLESS [ -r /etc/sysconfig/rc.site ] && . /etc/sysconfig/rc.site
## Wymiary ekranu
# Znajdź bieżący rozmiar ekranu, jeśli [ -z "${COLUMNS}" ]; Następnie
COLUMNS=$(rozmiar stty) COLUMNS=${COLUMNS##* }
fi
# Podczas korzystania ze zdalnych połączeń, takich jak port szeregowy, stty size zwraca 0, jeśli [ "${COLUMNS}" = "0" ]; Następnie
KOLUMNY=80
fi
## Pomiary dla komunikatów wyników pozycjonowania COL=$((${COLUMNS} - 8))
WCOL=$((${KOL} - 2))
## Ustaw polecenia pozycji kursora, używane przez echo SET_COL="\\033[${COL}G" # przy znaku $COL SET_WCOL="\\033[${WCOL}G" # przy znaku $WCOL CURS_UP="\\033[1A\\033[0G" # O jeden wiersz w górę, przy znaku 0 CURS_ZERO="\\033[0G"
#################################################################
# start_daemon() #
# Użycie: start_daemon [-f] [-n nicelevel] [-p plik pid] nazwa_ścieżki [argumenty...] #
# #
# Cel: Uruchamia określony program jako demona #
# #
# Dane wejściowe: -f: (wymuś) uruchamia program, nawet jeśli już działa. #
# -n nicelevel: określa ładny poziom. Zobacz „mężczyzna miły(1)”. #
# -p plik pid: użyj podanego pliku do określenia PID. #
# nazwa ścieżki: pełna ścieżka do określonego programu #
# args: dodatkowe argumenty przekazywane do programu (ścieżka) #
# #
# Wartości zwracane (zgodnie z kodami wyjścia LSB): #
# 0 - program działa lub usługa jest OK #
# 1 - błąd ogólny lub nieokreślony #
# 2 - nieprawidłowe lub nadmierne argumenty #
# 5 - program nie jest zainstalowany #
#################################################################
start_demon()
{
local force="" local nice="0" local pidfile="" local pidlist="" local retval=""
# Przetwarzaj argumenty, gdy są prawdziwe
do
przypadek „${1}” w
-F)
siła = „1” przesunięcie 1
;;
na)
nice="${2}" zmiana 2
;;
-P)
pidfile="${2}" przesunięcie 2
;;
-*)
zwróć 2
;;
zrobić
*)
to C
program="${1}" przerwa
;;
# Sprawdź prawidłowy program
Jeśli [ ! -e "${program}"]; następnie zwróć 5; fi
# Wykonać
if [ -z "${wymusza}" ]; Następnie
if [ -z "${plik-pid}" ]; Następnie
# Określ pid przez odkrycie pidlist=`pidofproc "${1}"` retval="${?}"
więcej
# Plik PID zawiera potrzebne identyfikatory PID
# Zauważ, że zgodnie z wymaganiami LSB ścieżka musi być podana do pidofproc,
# jednak nie jest używany przez obecną implementację ani standard. pidlist=`pidofproc -p "${pidfile}" "${1}"`
retval="${?}"
fi
# Zwróć TYLKO wartość
# Jest to odpowiedzialność skryptu startowego (lub funkcji dystrybucji).
# aby rejestrować wiadomości! sprawa "${retval}" w
0)
# Program już działa poprawnie, to jest a
#udany start. powrót 0
;;
1)
# Program nie działa, ale istnieje nieprawidłowy plik pid
# usuń plik pid i kontynuuj rm -f "${pidfile}"
;;
3)
# Program nie działa i nie istnieje plik pid
# nic tutaj nie rób, pozwól start_deamon kontynuować.
;;
*)
to C
fi
# Inne zwracane przez wartości statusu nie będą interpretowane
# i zwrócone jako nieokreślony błąd. powrót 1
;;
# Zacznij!
ładny -n "${ładny}" "${@}"
}
#################################################################
# zabijproc() #
# Użycie: killproc [-p plik pid] ścieżka [sygnał] #
# #
# Cel: Wysyłanie sygnałów sterujących do uruchomionych procesów #
# #
# Dane wejściowe: -p plik pid, używa określonego pliku pid #
# nazwa ścieżki, nazwa ścieżki do określonego programu #
# sygnał, wyślij ten sygnał do ścieżki #
# #
# Wartości zwracane (zgodnie z kodami wyjścia LSB): #
# 0 - program (nazwa ścieżki) został zatrzymany/jest już zatrzymany lub #
# | uruchomiony program został wysłany | sygnał i | zatrzymany | # | |
# | skutecznie | # | |||
# | 1 | - błąd ogólny lub nieokreślony | # | ||
# | 2 | - nieprawidłowe lub nadmierne argumenty | # | ||
# | 5 | - program nie jest zainstalowany | # | ||
# | 7 | - program nie działa, a był sygnał | w zestawie | # |
#################################################################
killproc()
{
lokalny plik pid lokalny program lokalny przedrostek lokalna nazwa programu
local signal="-TERM" local fallback="-KILL" lokalny znak
lokalna lista pidów lokalna retval lokalna pid
local delay="30" lokalny piddead lokalny dtime
# Przetwarzaj argumenty, gdy są prawdziwe; Do
przypadek „${1}” w
-P)
pidfile="${2}" przesunięcie 2
;;
*)
program="${1}"
if [-n "${2}" ]; następnie sygnał="${2}" rezerwowy=""
więcej
znak = 1
fi
# Błąd w dodatkowych argumentach if [ -n "${3}" ]; Następnie
zwróć 2
więcej
złamać
zrobić
fi
;;
to C
# Sprawdź prawidłowy program
Jeśli [ ! -e "${program}"]; następnie zwróć 5; fi
# Sprawdź prawidłowy sygnał check_signal "${signal}"
if [ "${?}" -ne "0" ]; następnie zwróć 2; fi
# Uzyskaj listę pidów
if [ -z "${plik-pid}" ]; Następnie
# określ pid przez odkrycie pidlist=`pidofproc "${1}"` retval="${?}"
więcej
# Plik PID zawiera potrzebne identyfikatory PID
# Zauważ, że zgodnie z wymaganiami LSB ścieżka musi być podana do pidofproc,
# jednak nie jest używany przez obecną implementację ani standard. pidlist=`pidofproc -p "${pidfile}" "${1}"`
retval="${?}"
fi
# Zwróć TYLKO wartość
# Jest to odpowiedzialność skryptu startowego (lub funkcji dystrybucji).
# aby rejestrować wiadomości! sprawa "${retval}" w
0)
# Program działa poprawnie
# Nic tutaj nie rób, pozwól killproc kontynuować.
;;
1)
# Program nie działa, ale istnieje nieprawidłowy plik pid
# Usuń plik pid. rm -f "${plik-pid}"
# To jest sukces tylko wtedy, gdy nie został przekazany żaden sygnał. if [ -n "${znak}" ]; Następnie
zwróć 0
więcej
zwróć 7
fi
;;
3)
# Program nie działa i nie istnieje plik pid
# To jest sukces tylko wtedy, gdy nie został przekazany żaden sygnał. if [ -n "${znak}" ]; Następnie
zwróć 0
więcej
zwróć 7
fi
;;
*)
to C
# Inne zwracane przez wartości statusu nie będą interpretowane
# i zwrócone jako nieokreślony błąd. powrót 1
;;
# Wykonaj różne akcje dla sygnałów wyjścia i sygnałów kontrolnych check_sig_type "${signal}"
if [ "${?}" -eq "0" ]; następnie # Sygnał jest używany do zakończenia programu
# Konto dla pustej listy pid (plik pid nadal istnieje i nie
# sygnał został podany)
if [ "${lista pid}" != "" ]; Następnie
# Zabij listę pidów dla pid w ${pidlist}; Do
kill -0 "${pid}" 2> /dev/null if ["${?}" -ne "0"]; Następnie
# Proces jest martwy, przejdź do następnego i załóż, że wszystko jest w porządku
więcej
kill "${sygnał}" "${pid}" 2> /dev/null
# Poczekaj do ${delay}/10 sekund na "${pid}".
# kończy się w dziesiątych częściach sekundy
while ["${opóźnienie}" -ne "0"]; Do
kill -0 "${pid}" 2> /dev/null || piddead="1" if [ "${piddead}" = "1" ]; następnie złamać; sen 0.1
opóźnienie="$((${opóźnienie} - 1 ))"
zrobić
# Jeśli ustawiono rezerwę, a program nadal działa, to
# użyj rezerwowego
if [-n "${reakcja}" -a "${piddead}" != "1" ]; następnie zabij "${fallback}" "${pid}" 2> /dev/null
spać 1
# Sprawdź ponownie i nie powiedzie się, jeśli nadal działa kill -0 "${pid}" 2> /dev/null && return 1
fi
fi
zrobić
fi
# Sprawdź i usuń nieaktualne pliki PID. if [ -z "${plik-pid}" ]; Następnie
# Znajdź nazwę bazową programu $
prefix=`echo "${program}" | sed 's/[^/]*$//'` progname=`echo "${program}" | sed "s@${przedrostek}@@"`
if [ -e "/var/run/${nazwa_programu}.pid" ]; Następnie
rm -f "/var/run/${nazwa_programu}.pid" 2> /dev/null
fi
więcej
if [ -e "${plik-pid}" ]; następnie rm -f "${plik_pid}" 2> /dev/null; fi
fi
# Dla sygnałów, które nie oczekują zakończenia programu, po prostu
# pozwól killowi wykonać swoją pracę i oceń zwrot z killa pod kątem wartości
else# check_sig_type - sygnał nie jest używany do zakończenia programu dla pid w ${pidlist}; Do
zabij "${sygnał}" "${pid}"
if [ "${?}" -ne "0" ]; następnie zwróć 1; fi
zrobić
fi
}
#################################################################
# pidofproc() #
# Użycie: pidofproc [-p plik pid] nazwa ścieżki #
# #
# Cel: Ta funkcja zwraca jeden lub więcej pid dla określonego demona #
# #
# Dane wejściowe: -p pidfile, użyj podanego pliku pid zamiast pidof #
# nazwa ścieżki, ścieżka do określonego programu #
# #
# Zwracane wartości (zgodnie z definicją kodów stanu LSB): #
# 0 - Sukces (PID na standardowe wyjście) #
# 1 - Program nie działa, plik PID nadal istnieje (pozostałe dane wyjściowe PID) #
# 3 - Program nie działa (brak wyjścia) #
#################################################################
pidofproc()
{
lokalny plik pid lokalny program lokalny przedrostek lokalna nazwa programu lokalna lista pidów lokalne lpidy
lokalny status wyjścia = „0”
# Przetwarzaj argumenty, gdy są prawdziwe; Do
przypadek „${1}” w
-P)
pidfile="${2}" przesunięcie 2
;;
*)
program="${1}"
if [ -n "${2}" ]; Następnie
# Zbyt wiele argumentów
# Ponieważ jest to status, zwróć nieznany zwrot 4
więcej
złamać
zrobić
fi
;;
to C
# Jeśli nie określono pliku PID, spróbuj go znaleźć. if [ -z "${plik-pid}" ]; Następnie
# Pobierz nazwę bazową programu
prefix=`echo "${program}" | sed 's/[^/]*$//'` if [ -z "${przedrostek}" ]; Następnie
programname="${program}" inny
progname=`echo "${program}" | sed "s@${przedrostek}@@"`
fi
# Jeśli istnieje plik PID o tej nazwie, załóżmy, że tak jest. if [ -e "/var/run/${nazwa_programu}.pid" ]; Następnie
pidfile="/var/run/${nazwa_programu}.pid"
fi
fi
# Jeśli plik PID jest ustawiony i istnieje, użyj go.
if [ -n "${plik_pid}" -a -e "${plik_pid}" ]; Następnie
# Użyj wartości w pierwszej linii pidfile pidlist=`/bin/head -n1 "${pidfile}"`
# Można to opcjonalnie zapisać jako „sed 1q”, aby zastąpić „head -n1”
# czy LFS powinien przenieść /bin/head do /usr/bin/head
więcej
# Użyj pidofa
pidlist=`pidof "${program}"`
fi
# Sprawdź, czy wszystkie wymienione PID są uruchomione. dla pid w ${pidlist}; Do
kill -0 ${pid} 2> /dev/null
if ["${?}" -eq "0" ]; następnie lpids="${lpids}${pid} "
więcej
stan wyjścia="1"
fi
zrobić
if [-z "${lpidy}" -a ! -f "${plik-pid}" ]; następnie powrót 3
więcej
echo "${lpidy}"
zwróć "${exitstatus}"
fi
}
#################################################################
# statusproc() #
# Użycie: statusproc [-p plik pid] nazwa_ścieżki #
# #
# Cel: Ta funkcja wypisuje stan określonego demona na stdout #
# #
# Dane wejściowe: -p pidfile, użyj podanego pliku pid zamiast pidof #
# nazwa ścieżki, ścieżka do określonego programu #
# #
# Zwracane wartości: #
# 0 - Stan wydrukowany #
# 1 - Błąd wprowadzania. Nie określono demona do sprawdzenia. #
#################################################################
statusproc()
{
lokalny plik pid lokalna lista pid
jeśli [ "${#}" = "0" ]; Następnie
echo "Użycie: statusproc [-p pidfle] {program}" wyjście 1
fi
# Przetwarzaj argumenty, gdy są prawdziwe; Do
przypadek „${1}” w
-P)
pidfile="${2}" przesunięcie 2
;;
*)
if [ -n "${2}" ]; Następnie
echo "Za dużo argumentów" zwraca 1
więcej
złamać
zrobić
fi
;;
to C
if [ -n "${plik-pid}" ]; następnie pidlist=`pidofproc -p "${pidfile}" $@`
więcej
pidlist=`pidofproc $@`
fi
# Przytnij końcowe spacje
pidlist=`echo "${pidlist}" | sed -r 's/ +$//'` base="${1##*/}"
if [ -n "${lista_pid}" ]; Następnie
/bin/echo -e "${INFO}${base} działa z procesem" \ "Identyfikatory ${pidlist}.${NORMAL}"
więcej
if [ -n "${base}" -a -e "/var/run/${base}.pid" ]; Następnie
/bin/echo -e "${OSTRZEŻENIE}${1} nie działa, ale" \ "/var/run/${base}.pid istnieje.${NORMALNY}"
więcej
if [ -n "${plik_pid}" -a -e "${plik_pid}" ]; Następnie
/bin/echo -e "${OSTRZEŻENIE}${1} nie działa" \ "ale ${pidfile} istnieje.${NORMALNY}"
więcej
/bin/echo -e "${INFO}${1} nie działa.${NORMALNIE}"
fi
fi
fi
}
#################################################################
# specyfikacja czasu() #
# #
# Cel: wewnętrzna funkcja narzędziowa do formatowania znacznika czasu #
# plik dziennika rozruchu. Ustawia zmienną STAMP. #
# #
# Zwracana wartość: Nie używana #
#################################################################
specyfikacja czasowa()
{
STAMP="$(echo `data +"%b %d %T%:z"``nazwa hosta`) " return 0
}
#################################################################
# log_success_msg() #
# Użycie: log_success_msg ["wiadomość"] #
# #
# Cel: Wydrukuj pomyślny komunikat o stanie na ekranie i #
# plik dziennika rozruchu. #
# #
# Wejścia: $@ - Wiadomość #
# #
# Zwracane wartości: Nieużywane #
#################################################################
log_success_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
# Usuń niedrukowalne znaki z pliku dziennika logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
terminarz
/bin/echo -e "${STAMP} ${logmessage} OK" >> ${BOOTLOG}
zwróć 0
}
log_success_msg2()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" echo "OK" >> ${BOOTLOG}
zwróć 0
}
#################################################################
# log_failure_msg() #
# Użycie: log_failure_msg ["wiadomość"] #
# #
# Cel: Wydrukuj komunikat o stanie awarii na ekranie i #
# plik dziennika rozruchu. #
# #
# Wejścia: $@ - Wiadomość #
# #
# Zwracane wartości: Nieużywane #
#################################################################
log_failure_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
# Usuń niedrukowalne znaki z timespec pliku dziennika
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -e "${STAMP} ${logmessage} FAIL" >> ${BOOTLOG}
zwróć 0
}
log_failure_msg2()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" echo "FAIL" >> ${BOOTLOG}
zwróć 0
}
#################################################################
# log_warning_msg() #
# Użycie: log_warning_msg ["wiadomość"] #
# #
# Cel: Wydrukuj komunikat o stanie ostrzeżenia na ekranie i #
# plik dziennika rozruchu. #
# #
# Zwracane wartości: Nieużywane #
#################################################################
log_warning_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"
# Usuń niedrukowalne znaki z pliku dziennika logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` określenie czasu
/bin/echo -e "${STAMP} ${logmessage} OSTRZEŻENIE" >> ${BOOTLOG}
zwróć 0
}
log_skip_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"
# Usuń niedrukowalne znaki z pliku dziennika logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo "POMIŃ" >> ${BOOTLOG}
zwróć 0
}
#################################################################
# log_info_msg() #
# Użycie: wiadomość log_info_msg #
# #
# Cel: Wydrukuj wiadomość informacyjną na ekranie i #
# plik dziennika rozruchu. Nie drukuje końcowego znaku nowej linii. #
# #
# Zwracane wartości: Nieużywane #
#################################################################
log_info_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
# Usuń niedrukowalne znaki z pliku dziennika logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` określenie czasu
/bin/echo -n -e "${STAMP} ${logmessage}" >> ${BOOTLOG}
zwróć 0
}
log_info_msg2()
{
/bin/echo -n -e "${@}"
# Usuń niedrukowalne znaki z pliku dziennika logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -n -e "${logmessage}" >> ${BOOTLOG}
zwróć 0
}
#################################################################
# ewaluacja_retval() #
# Użycie: Oceń wartość zwracaną i wypisz odpowiednio sukces lub niepowodzenie #
# #
# Przeznaczenie: wygodna funkcja zakończenia komunikatu informacyjnego #
# #
# Zwracane wartości: Nieużywane #
#################################################################
ocena_retval()
{
lokalny error_value="${?}"
jeśli [ ${wartość_błędu} = 0 ]; następnie log_success_msg2
więcej
log_failure_msg2
fi
}
#################################################################
# check_signal() #
# Użycie: check_signal [ -{signal} | {sygnał} ] #
# #
# Cel: Sprawdź prawidłowy sygnał. Nie jest to zdefiniowane w żadnym projekcie LSB, #
# jednak wymagane jest sprawdzenie sygnałów w celu ustalenia, czy #
# wybranych sygnałów jest nieprawidłowymi argumentami innych funkcji. #
# #
# Wejścia: Akceptuje pojedynczą wartość ciągu w postaci lub -{signal} lub {signal} #
# #
# Zwracane wartości: #
# 0 - Sukces (sygnał jest ważny #
# 1 - Sygnał jest nieprawidłowy #
#################################################################
check_signal()
{
lokalny valsig
# Dodaj obsługę błędów dla nieprawidłowych sygnałów
wartości ig="${valsig} -SYS -EMT -BUS -XCPU -XFSZ -1 -2 -0 -1 -2 -3 -4 -5 -6"
valsig="${valsig} -11 -13 -14 -15"
echo "${valsig}" | grep -- " ${1} " > /dev/null if [ "${?}" -eq "0" ]; Następnie
zwróć 0
więcej
zwróć 1
fi
}
#################################################################
# check_sig_type() #
# Użycie: check_signal [ -{signal} | {sygnał} ] #
# #
# Cel: Sprawdź, czy sygnał jest sygnałem zakończenia programu, czy sygnałem sterującym #
# Nie jest to określone w żadnym projekcie LSB, jednak wymagane jest #
# sprawdź sygnały, aby określić, czy mają one zakończyć #
# program lub po prostu go kontrolować. #
# #
# Wejścia: Akceptuje pojedynczą wartość ciągu w postaci lub -{signal} lub {signal} #
# #
# Zwracane wartości: #
# 0 - Sygnał służy do zakończenia programu #
# 1 - Sygnał służy do sterowania programem #
#################################################################
check_sig_type()
{
lokalny valsig
# Lista sygnałów zakończenia (ograniczona do ogólnie używanych pozycji) valsig="-ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2 -3 -6 -9 -14 -15"
echo "${valsig}" | grep -- " ${1} " > /dev/null if [ "${?}" -eq "0" ]; Następnie
zwróć 0
więcej
zwróć 1
fi
}
#################################################################
# czekać_na_użytkownika() #
# #
# Cel: Poczekaj na odpowiedź użytkownika, jeśli nie jest to system bezgłowy #
# #
#################################################################
czekać_na_użytkownika()
{
# Domyślnie czekaj na użytkownika
[ "${HEADLESS=0}" = "0" ] && przeczytaj ENTER
zwróć 0
}
#################################################################
# jest prawdziwy() #
# #
# Przeznaczenie: Narzędzie do sprawdzania, czy zmienna jest prawdziwa | tak | 1 #
# #
#################################################################
jest prawdziwy()
{
[ "1 $" = "1" ] || [ "1 $" = "tak" ] || [ "1 $" = "prawda" ] || [ "1 $" = "y" ] || [ "1 $" = "t" ]
}
# Zakończ /lib/lsb/init-functions
zwróć 0
więcej
zwróć 1
fi
}
#################################################################
# czekać_na_użytkownika() #
# #
# Cel: Poczekaj na odpowiedź użytkownika, jeśli nie jest to system bezgłowy #
# #
#################################################################
czekać_na_użytkownika()
{
# Domyślnie czekaj na użytkownika
[ "${HEADLESS=0}" = "0" ] && przeczytaj ENTER
zwróć 0
}
#################################################################
# jest prawdziwy() #
# #
# Przeznaczenie: Narzędzie do sprawdzania, czy zmienna jest prawdziwa | tak | 1 #
# #
#################################################################
jest prawdziwy()
{
[ "1 $" = "1" ] || [ "1 $" = "tak" ] || [ "1 $" = "prawda" ] || [ "1 $" = "y" ] || [ "1 $" = "t" ]
}
# Zakończ /lib/lsb/init-functions
: Gerard Beekmans - [email chroniony] DJ Łukasz – [email chroniony]
: Bruce Dubbs - [email chroniony]
: Gerard Beekmans - [email chroniony] DJ Łukasz – [email chroniony]
: Bruce Dubbs - [email chroniony]
: LFS 7.0
: LFS 7.0
Mountvirtfs
Mountvirtfs
S
S