OnWorks Linux i Windows Online WorkStation

logo

Darmowy hosting online dla stacji roboczych

<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

obraz


# 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 #

# #

obraz


# 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

obraz


# 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 #

obraz



#

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

obraz


# 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

obraz


# 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}"

obraz


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

obraz


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()

{

obraz


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

}

obraz


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

# 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ść #

obraz


# #

# 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}

obraz


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() #

obraz


# 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


obraz

obraz

: 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

Najlepsze przetwarzanie w chmurze dla systemu operacyjnego w OnWorks: