Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

D.2. / lib / lsb / init-функции‌


#! / Bin / ш

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

#

# Begin / lib / lsb / init-funtions

#

# Описание: Функции управления уровнем выполнения

#

#! / Bin / ш

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

#

# Begin / lib / lsb / init-funtions

#

# Описание: Функции управления уровнем выполнения

#


# Авторы

#

# Обновлять

#

# Версия

#

# Примечания

#

#

#

#

# Авторы

#

# Обновлять

#

# Версия

#

# Примечания

#

#

#

#


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


## Настройка среды

# Установить значения по умолчанию для окружения umask 022

экспорт ПУТЬ = "/ bin: / usr / bin: / sbin: / usr / sbin"


## Установить команды цвета, используемые через эхо

# Пожалуйста, обратитесь к `man console_codes для получения дополнительной информации

# в разделе "ECMA-48 Set Graphics Rendition"

#

# Предупреждение: при переключении с 8-битного на 9-битный шрифт,

# консоль linux будет интерпретировать жирный шрифт (1;) на

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


## Настройка среды

# Установить значения по умолчанию для окружения umask 022

экспорт ПУТЬ = "/ bin: / usr / bin: / sbin: / usr / sbin"


## Установить команды цвета, используемые через эхо

# Пожалуйста, обратитесь к `man console_codes для получения дополнительной информации

# в разделе "ECMA-48 Set Graphics Rendition"

#

# Предупреждение: при переключении с 8-битного на 9-битный шрифт,

# консоль linux будет интерпретировать жирный шрифт (1;) на

изображение


# верхние 256 символов 9-битного шрифта. Это делает

# не влияет на консоли фреймбуфера


NORMAL = "\\ 033 [0; 39m" # Стандартная консоль серый SUCCESS = "\\ 033 [1; 32m" # Успех - зеленый WARNING = "\\ 033 [1; 33m" # Предупреждения желтые FAILURE = "\\ 033 [1; 31m "# Ошибки красные INFO =" \\ 033 [1; 36m "# Информация светло-голубого цвета BRACKET =" \\ 033 [1; 34m "# Скобки синие


# Используйте цветной префикс BMPREFIX = ""

SUCCESS_PREFIX = "$ {УСПЕХ} * $ {NORMAL}" FAILURE_PREFIX = "$ {FAILURE} ***** $ {NORMAL}" WARNING_PREFIX = "$ {WARNING} *** $ {NORMAL}" SKIP_PREFIX = "$ { INFO} S $ {NORMAL} "


SUCCESS_SUFFIX = "$ {BRACKET} [$ {SUCCESS} OK $ {BRACKET}] $ {NORMAL}" FAILURE_SUFFIX = "$ {BRACKET} [$ {FAILURE} FAIL $ {BRACKET}] $ {NORMAL}" WARNING_SUFFIX = "$ {BRACKET} [$ {WARNING} WARN $ {BRACKET}] $ {NORMAL} "SKIP_SUFFIX =" $ {BRACKET} [$ {INFO} SKIP $ {BRACKET}] $ {NORMAL} "


BOOTLOG = / run / bootlog KILLDELAY = 3 SCRIPT_STAT = "0"


# Установите любые указанные пользователем переменные среды, например, HEADLESS [-r /etc/sysconfig/rc.site] &&. /etc/sysconfig/rc.site


## Размеры экрана

# Найти текущий размер экрана if [-z "$ {COLUMNS}"]; тогда

COLUMNS = $ (размер stty) COLUMNS = $ {COLUMNS ## *}

fi


# При использовании удаленных подключений, таких как последовательный порт, stty size возвращает 0 if ["$ {COLUMNS}" = "0"]; тогда

КОЛОННЫ = 80

fi


## Измерения для сообщений о результатах позиционирования COL = $ (($ {COLUMNS} - 8))

WCOL = $ (($ {COL} - 2))


## Команды установки положения курсора, используемые через echo SET_COL = "\\ 033 [$ {COL} G" # в $ COL char SET_WCOL = "\\ 033 [$ {WCOL} G" # в $ WCOL char CURS_UP = "\\ 033 [1A \\ 033 [0G" # На одну строку вверх, с нулевым символом CURS_ZERO = "\\ 0 [033G»


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

# start_daemon () #

# Использование: start_daemon [-f] [-n nicelevel] [-p pidfile] путь [аргументы ...] #

# #

# Назначение: запускает указанную программу как демон #

# #

изображение


# Входные данные: -f: (принудительно) запустить программу, даже если она уже запущена. #

# -n nicelevel: указать хороший уровень. См. "Приятный человек (1)". #

# -p pidfile: использовать указанный файл для определения идентификаторов PID. #

# pathname: полный путь к указанной программе #

# args: программе передаются дополнительные аргументы (путь) #

# #

# Возвращаемые значения (как определено кодами выхода LSB): #

# 0 - программа запущена или служба в порядке #

# 1 - общая или неопределенная ошибка #

# 2 - недопустимый или чрезмерный аргумент (ы) #

# 5 - программа не устанавливается #

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

start_daemon ()

{

local force = "" local nice = "0" local pidfile = "" local pidlist = "" local retval = ""


# Обрабатывать аргументы, пока истинно

do

case "$ {1}" в


-е)


force = "1" сдвиг 1

;;


-н)


nice = "$ {2}" смена 2

;;


-п)


pidfile = "$ {2}" смена 2

;;


- *)


вернуть 2

;;



сделанный

*)


ESAC


program = "$ {1}" перерыв

;;


# Проверить действующую программу

если [ ! -e "$ {программа}"]; затем верните 5; фи


# Выполнять

если [-z "$ {force}"]; тогда

если [-z "$ {pidfile}"]; тогда

изображение


# Определить pid по обнаружению pidlist = `pidofproc" $ {1} "` retval = "$ {?}"

еще

# Файл PID содержит необходимые PID

# Обратите внимание, что по требованию LSB путь должен быть указан к pidofproc,

# однако он не используется текущей реализацией или стандартом. pidlist = `pidofproc -p" $ {pidfile} "" $ {1} "`

retval = "$ {?}"

fi


# Вернуть ТОЛЬКО значение

# Это ответственность сценария инициализации (или функций распределения)

# для записи сообщений! case "$ {retval}" в


0)

# Программа уже работает правильно, это

# успешный старт. возврат 0

;;


1)

# Программа не запущена, но существует недопустимый файл pid

# удалить файл pid и продолжить rm -f "$ {pidfile}"

;;


3)

# Программа не запущена и файл pidfile не существует

# здесь ничего не делаем, пусть start_deamon продолжит работу.

;;


*)


ESAC

fi


# Остальные, возвращаемые значениями статуса, не должны интерпретироваться

# и возвращается как неопределенная ошибка. возврат 1

;;


# Сделай начало!

nice -n "$ {nice}" "$ {@}"

}


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

# killproc () #

# Использование: killproc [-p pidfile] путь [сигнал] #

# #

# Цель: отправлять управляющие сигналы запущенным процессам #

# #

# Входные данные: -p pidfile, использует указанный pidfile #

# путь, путь к указанной программе #

# сигнал, отправьте этот сигнал по пути #

# #

# Возвращаемые значения (как определено кодами выхода LSB): #

# 0 - программа (путь) остановлена ​​/ уже остановлена ​​или #

изображение



#

запущенная программа была отправлена ​​указанным

сигнал и

остановившийся

#

#

успешно

#

#

1

- общая или неопределенная ошибка

#

#

2

- неверный или чрезмерный аргумент (ы)

#

#

5

- программа не установлена

#

#

7

- программа не запущена и был получен сигнал

поставляется

#

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

killproc ()

{

локальный файл pidfile локальная программа локальный префикс локальное имя программы

local signal = "- TERM" local fallback = "- KILL" local nosig

локальный список pidlist локальный retval локальный pid

local delay = "30" местный piddead local dtime


# Обрабатывать аргументы, пока истинно; делать

case "$ {1}" в

-п)

pidfile = "$ {2}" смена 2

;;


*)

program = "$ {1}"

если [-n "$ {2}"]; затем signal = "$ {2}" fallback = ""

еще

nosig = 1

fi


# Ошибка дополнительных аргументов if [-n "$ {3}"]; тогда

вернуть 2

еще

перерыв


сделанный

fi

;;

ESAC


# Проверить действующую программу

если [ ! -e "$ {программа}"]; затем верните 5; фи


# Проверить действительный сигнал check_signal "$ {signal}"

если ["$ {?}" -ne "0"]; затем верните 2; фи

изображение


# Получить список pid

если [-z "$ {pidfile}"]; тогда

# определить pid по обнаружению pidlist = `pidofproc" $ {1} "` retval = "$ {?}"

еще

# Файл PID содержит необходимые PID

# Обратите внимание, что по требованию LSB путь должен быть указан к pidofproc,

# однако он не используется текущей реализацией или стандартом. pidlist = `pidofproc -p" $ {pidfile} "" $ {1} "`

retval = "$ {?}"

fi


# Вернуть ТОЛЬКО значение

# Это ответственность сценария инициализации (или функций распределения)

# для записи сообщений! case "$ {retval}" в


0)

# Программа работает правильно

# Здесь ничего не делайте, позвольте killproc продолжить.

;;


1)

# Программа не запущена, но существует недопустимый файл pid

# Удалить файл pid. rm -f "$ {pidfile}"


# Это успех только в том случае, если не было передано никакого сигнала. если [-n "$ {nosig}"]; тогда

вернуть 0

еще

вернуть 7

fi

;;


3)

# Программа не запущена и файл pidfile не существует

# Это успех только в том случае, если не было передано никакого сигнала. если [-n "$ {nosig}"]; тогда

вернуть 0

еще

вернуть 7

fi

;;


*)


ESAC


# Остальные, возвращаемые значениями статуса, не должны интерпретироваться

# и возвращается как неопределенная ошибка. возврат 1

;;


# Выполнение различных действий для сигналов выхода и сигналов управления check_sig_type "$ {signal}"


если ["$ {?}" -eq "0"]; then # Сигнал используется для завершения программы

изображение


# Учетная запись для пустого списка pidlist (файл pid все еще существует и нет

Был подан # сигнал)

если ["$ {pidlist}"! = ""]; тогда


# Убить список pid для pid в $ {pidlist}; делать

kill -0 "$ {pid}" 2> / dev / null если ["$ {?}" -ne "0"]; тогда

# Процесс мертв, переходите к следующему и предполагайте, что все в порядке, продолжить

еще

kill "$ {сигнал}" "$ {pid}" 2> / dev / null


# Подождите до $ {delay} / 10 секунд, чтобы "$ {pid}"

# оканчиваются через 10 долей секунды


в то время как ["$ {delay}" -ne "0"]; делать

kill -0 "$ {pid}" 2> / dev / null || piddead = "1" если ["$ {piddead}" = "1"]; затем перерыв; фантастический сон 0.1

delay = "$ (($ {задержка} - 1))"

сделанный


# Если задан запасной вариант, а программа все еще работает, то

# использовать запасной вариант

если [-n "$ {резерв}" -a "$ {piddead}"! = "1"]; затем убейте "$ {fallback}" "$ {pid}" 2> / dev / null

спать 1

# Проверьте еще раз и завершитесь неудачно, если все еще выполняется kill -0 "$ {pid}" 2> / dev / null && return 1

fi

fi

сделанный

fi


# Проверить и удалить устаревшие файлы PID. если [-z "$ {pidfile}"]; тогда

# Найдите базовое имя $ program

prefix = `echo" $ {program} "| sed 's / [^ /] * $ //' `progname =` echo "$ {program}" | sed "s @ $ {префикс} @@" `


если [-e "/var/run/${progname}.pid"]; тогда

rm -f "/var/run/${progname}.pid" 2> / dev / null

fi

еще

если [-e "$ {pidfile}"]; затем rm -f "$ {pidfile}" 2> / dev / null; фи

fi


# Для сигналов, которые не ожидают выхода программы, просто

# пусть kill выполняет свою работу и оценивает отдачу от kill для значения


else # check_sig_type - сигнал не используется для завершения программы для pid в $ {pidlist}; делать

kill "$ {signal}" "$ {pid}"

изображение


если ["$ {?}" -ne "0"]; затем верните 1; фи

сделанный

fi

}


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

# pidofproc () #

# Использование: pidofproc [-p pidfile] путь #

# #

# Цель: эта функция возвращает один или несколько pid (ов) для определенного демона #

# #

# Входные данные: -p pidfile, использовать указанный pidfile вместо pidof #

# путь, путь к указанной программе #

# #

# Возвращаемые значения (как определено кодами состояния LSB): #

# 0 - Успех (от PID до стандартного вывода) #

# 1 - Программа мертва, файл PID все еще существует (оставшиеся выходные данные PID) #

# 3 - Программа не запущена (нет вывода) #

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

pidofproc ()

{

локальный файл pidfile локальная программа локальный префикс локальное имя программы локальный список pidlist локальные идентификаторы lpid

местный exitstatus = "0"


# Обрабатывать аргументы, пока истинно; делать

case "$ {1}" в


-п)


pidfile = "$ {2}" смена 2

;;


*)

program = "$ {1}"

если [-n "$ {2}"]; тогда

# Слишком много доводов

# Так как это статус, вернуть unknown return 4

еще

перерыв


сделанный

fi

;;

ESAC


# Если файл PID не указан, попробуйте найти его. если [-z "$ {pidfile}"]; тогда

# Получить базовое имя программы

prefix = `echo" $ {program} "| sed 's / [^ /] * $ //' `if [-z" $ {prefix} "]; тогда

изображение


progname = "$ {program}" еще

progname = `echo" $ {program} "| sed "s @ $ {префикс} @@" `

fi


# Если существует файл PID с таким именем, предположим, что это он. если [-e "/var/run/${progname}.pid"]; тогда

pidfile = "/ var / run / $ {progname} .pid"

fi

fi


# Если файл PID установлен и существует, используйте его.

если [-n "$ {pidfile}" -a -e "$ {pidfile}"]; тогда


# Используйте значение в первой строке pidfile pidlist = `/ bin / head -n1" $ {pidfile} "`

# При желании это можно записать как 'sed 1q' для замены 'head -n1'

# следует LFS переместить / bin / head в / usr / bin / head

еще

# Используйте pidof

pidlist = `pidof" $ {программа} "`

fi


# Выяснить, все ли перечисленные PID работают. для pid в $ {pidlist}; делать

kill -0 $ {pid} 2> / dev / null


если ["$ {?}" -eq "0"]; затем lpids = "$ {lpids} $ {pid}"

еще

exitstatus = "1"

fi

сделанный


если [-z "$ {lpids}" -a! -f "$ {pidfile}"]; затем верните 3

еще

эхо "$ {lpids}"

вернуть "$ {exitstatus}"

fi

}


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

# statusproc () #

# Использование: statusproc [-p pidfile] путь #

# #

# Назначение: эта функция выводит статус конкретного демона на стандартный вывод #

# #

# Входные данные: -p pidfile, использовать указанный pidfile вместо pidof #

# путь, путь к указанной программе #

# #

# Возвращаемые значения: #

# 0 - Статус напечатан #

# 1 - Ошибка ввода. Демон для проверки не указан. #

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

statusproc ()

{

изображение


локальный pidfile локальный список pidlist


если ["$ {#}" = "0"]; тогда

echo "Использование: statusproc [-p pidfle] {program}" выход 1

fi


# Обрабатывать аргументы, пока истинно; делать

case "$ {1}" в


-п)


pidfile = "$ {2}" смена 2

;;


*)

если [-n "$ {2}"]; тогда

echo "Слишком много аргументов" возвращает 1

еще

перерыв


сделанный

fi

;;

ESAC


если [-n "$ {pidfile}"]; затем pidlist = `pidofproc -p" $ {pidfile} "$ @`

еще

pidlist = `pidofproc $ @`

fi


# Обрезать конечные пробелы

pidlist = `echo" $ {pidlist} "| sed -r 's / + $ //' `base =" $ {1 ## * /} "

если [-n "$ {список pidlist}"]; тогда

/ bin / echo -e "$ {INFO} $ {base} работает с идентификаторами процесса" \ "$ {pidlist}. $ {NORMAL}"

еще

если [-n "$ {base}" -a -e "/var/run/${base}.pid"]; тогда

/ bin / echo -e "$ {WARNING} $ {1} не запущен, но существует" \ "/var/run/${base}.pid. $ {NORMAL}"

еще

если [-n "$ {pidfile}" -a -e "$ {pidfile}"]; тогда

/ bin / echo -e "$ {WARNING} $ {1} не запущен" \ ", но $ {pidfile} существует. $ {NORMAL}"

еще

/ bin / echo -e "$ {INFO} $ {1} не запущен. $ {NORMAL}"

fi

fi

fi

}

изображение


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

# timespec () #

# #

# Назначение: внутренняя служебная функция для форматирования метки времени #

# файл журнала загрузки. Устанавливает переменную STAMP. #

# #

# Возвращаемое значение: не используется #

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

время ()

{

STAMP = "$ (echo` date + "% b% d% T%: z" `` hostname`) "вернуть 0

}


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

# log_success_msg () #

# Использование: log_success_msg ["сообщение"] #

# #

# Цель: вывести на экран сообщение об успешном статусе и #

# файл журнала загрузки. #

# #

# Входные данные: $ @ - Сообщение #

# #

# Возвращаемые значения: не используются #

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

log_success_msg ()

{

/ bin / echo -n -e "$ {BMPREFIX} $ {@}"

/ bin / echo -e "$ {CURS_ZERO} $ {SUCCESS_PREFIX} $ {SET_COL} $ {SUCCESS_SUFFIX}"


# Удалить непечатаемые символы из файла журнала logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'`


время

/ bin / echo -e "$ {STAMP} $ {logmessage} OK" >> $ {BOOTLOG}


вернуть 0

}


log_success_msg2 ()

{

/ bin / echo -n -e "$ {BMPREFIX} $ {@}"

/ bin / echo -e "$ {CURS_ZERO} $ {SUCCESS_PREFIX} $ {SET_COL} $ {SUCCESS_SUFFIX}" echo "ОК" >> $ {BOOTLOG}

вернуть 0

}


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

# log_failure_msg () #

# Использование: log_failure_msg ["сообщение"] #

# #

# Цель: вывести на экран сообщение о состоянии отказа и #

# файл журнала загрузки. #

# #

# Входные данные: $ @ - Сообщение #

изображение


# #

# Возвращаемые значения: не используются #

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

log_failure_msg ()

{

/ bin / echo -n -e "$ {BMPREFIX} $ {@}"

/ bin / echo -e "$ {CURS_ZERO} $ {FAILURE_PREFIX} $ {SET_COL} $ {FAILURE_SUFFIX}"

# Убрать непечатаемые символы из времени файла журнала

logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'`

/ bin / echo -e "$ {STAMP} $ {logmessage} FAIL" >> $ {BOOTLOG}


вернуть 0

}


log_failure_msg2 ()

{

/ bin / echo -n -e "$ {BMPREFIX} $ {@}"

/ bin / echo -e "$ {CURS_ZERO} $ {FAILURE_PREFIX} $ {SET_COL} $ {FAILURE_SUFFIX}" echo "FAIL" >> $ {BOOTLOG}

вернуть 0

}


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

# log_warning_msg () #

# Использование: log_warning_msg ["сообщение"] #

# #

# Цель: вывести на экран предупреждающее сообщение о статусе и #

# файл журнала загрузки. #

# #

# Возвращаемые значения: не используются #

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

log_warning_msg ()

{

/ bin / echo -n -e "$ {BMPREFIX} $ {@}"

/ bin / echo -e "$ {CURS_ZERO} $ {WARNING_PREFIX} $ {SET_COL} $ {WARNING_SUFFIX}"


# Удалить непечатаемые символы из файла журнала logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'` время

/ bin / echo -e "$ {STAMP} $ {logmessage} WARN" >> $ {BOOTLOG}


вернуть 0

}


log_skip_msg ()

{

/ bin / echo -n -e "$ {BMPREFIX} $ {@}"

/ bin / echo -e "$ {CURS_ZERO} $ {SKIP_PREFIX} $ {SET_COL} $ {SKIP_SUFFIX}"


# Удалить непечатаемые символы из файла журнала logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'`

/ bin / echo "ПРОПУСТИТЬ" >> $ {BOOTLOG}

изображение


вернуть 0

}


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

# log_info_msg () #

# Использование: сообщение log_info_msg #

# #

# Цель: вывести на экран информационное сообщение и #

# файл журнала загрузки. Не печатает завершающий символ новой строки. #

# #

# Возвращаемые значения: не используются #

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

log_info_msg ()

{

/ bin / echo -n -e "$ {BMPREFIX} $ {@}"


# Удалить непечатаемые символы из файла журнала logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'` время

/ bin / echo -n -e "$ {ПЕЧАТЬ} $ {logmessage}" >> $ {БУТЛОГ}


вернуть 0

}


log_info_msg2 ()

{

/ bin / echo -n -e "$ {@}"


# Удалить непечатаемые символы из файла журнала logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'`

/ bin / echo -n -e "$ {logmessage}" >> $ {BOOTLOG}


вернуть 0

}


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

# оценить_retval () #

# Использование: оценить возвращаемое значение и, при необходимости, распечатать успех или неудачу #

# #

# Назначение: функция удобства для завершения информационного сообщения #

# #

# Возвращаемые значения: не используются #

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

оценить_retval ()

{

local error_value = "$ {?}"


если [$ {error_value} = 0]; затем log_success_msg2

еще

log_failure_msg2

fi

}


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

# check_signal () #

изображение


# Использование: check_signal [- {signal} | {signal}] #

# #

# Цель: Проверить наличие действительного сигнала. Это не определяется каким-либо черновиком LSB, #

# однако необходимо проверить сигналы, чтобы определить, #

# выбранные сигналы являются недопустимыми аргументами для других функций. #

# #

# Входы: принимает одно строковое значение в форме или - {сигнал} или {сигнал} #

# #

# Возвращаемые значения: #

# 0 - Успех (сигнал действителен #

# 1 - сигнал недействителен #

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

check_signal ()

{

местный валсиг


# Добавить обработку ошибок для недопустимых сигналов

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"

эхо "$ {valsig}" | grep - "$ {1}"> / dev / null если ["$ {?}" -eq "0"]; тогда

вернуть 0

еще

вернуть 1

fi

}


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

# check_sig_type () #

# Использование: check_signal [- {signal} | {signal}] #

# #

# Цель: Проверить, является ли сигнал сигналом завершения программы или управляющим сигналом #

# Это не определено ни в одном из проектов LSB, но требуется, чтобы #

# проверяем сигналы, чтобы определить, предназначены ли они для завершения #

# программу или просто управлять ею. #

# #

# Входы: принимает одно строковое значение в форме или - {сигнал} или {сигнал} #

# #

# Возвращаемые значения: #

# 0 - сигнал используется для завершения программы #

# 1 - сигнал используется для программного управления #

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

check_sig_type ()

{

местный валсиг


# Список сигналов завершения (ограничен обычно используемыми элементами) valsig = "- ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2-3-6-9-14-15"


эхо "$ {valsig}" | grep - "$ {1}"> / dev / null если ["$ {?}" -eq "0"]; тогда



вернуть 0

еще

вернуть 1

fi

}


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

# wait_for_user () #

# #

# Цель: дождаться ответа пользователя, если не обезглавленная система #

# #

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

wait_for_user ()

{

# Ждать пользователя по умолчанию

["$ {HEADLESS = 0}" = "0"] && прочтите ENTER

вернуть 0

}


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

# правда() #

# #

# Назначение: Утилита для проверки истинности переменной | да | 1 #

# #

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

правда()

{

["$ 1" = "1"] || ["$ 1" = "да"] || ["$ 1" = "true"] || ["$ 1" = "y"] || ["$ 1" = "т"]

}


# Конец / lib / lsb / init-functions

вернуть 0

еще

вернуть 1

fi

}


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

# wait_for_user () #

# #

# Цель: дождаться ответа пользователя, если не обезглавленная система #

# #

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

wait_for_user ()

{

# Ждать пользователя по умолчанию

["$ {HEADLESS = 0}" = "0"] && прочтите ENTER

вернуть 0

}


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

# правда() #

# #

# Назначение: Утилита для проверки истинности переменной | да | 1 #

# #

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

правда()

{

["$ 1" = "1"] || ["$ 1" = "да"] || ["$ 1" = "true"] || ["$ 1" = "y"] || ["$ 1" = "т"]

}


# Конец / lib / lsb / init-functions


изображение

изображение

: Джерард Бикманс - [электронная почта защищена] диджей Лукас - [электронная почта защищена]

: Брюс Даббс - [электронная почта защищена]

: Джерард Бикманс - [электронная почта защищена] диджей Лукас - [электронная почта защищена]

: Брюс Даббс - [электронная почта защищена]

: ЛФС 7.0

: ЛФС 7.0

Mountvirtfs

Mountvirtfs

S

S

Лучшие облачные вычисления для ОС в OnWorks: