Какова переменная $ #?

есть ли какая-нибудь лучшая альтернатива этому?

-Да. Используйте подходящий менеджер служб и мусор, который используется скриптом /etc/init.d/nagios. В лучшем случае, вы используете скрипт System 5 rc в режиме совместимости под чем-то вроде upstart или systemd, в этом случае вы не получите некоторые полезные механизмы управления службой, которые недоступны в режиме совместимости , так как этот человек в AskFedora этого не делал. В худшем случае, вы работаете под System 5 rc и у вас нет реальной надежды сделать наполовину приличное управление сервисами с помощью этого скрипта.

Существует множество систем управления сервисами. Я не буду вдаваться в подробности их установки, потому что это выходит за рамки данного ответа. Вместо этого, я сконцентрируюсь просто на том, как запустить nagios dæmon внутри них.

Семейство даемонструментов

Семейство даемонструментов включает в себя наборы инструментов для управления службой:

Главное, что вам здесь нужно, это программа, которая становится деймоном. Для нагиос это 2- или 3-линейка. Можно смешивать и сопоставлять наборы инструментов. Вот несколько подходящих 2-строчных программ, использующих несколько различных наборов инструментов:

  • A run file с набором инструментов nosh:
    #!/bin/nosh
    setuidgid nagios
    nagios
    и файлом restart, который вызывает безусловный автоматический перезапуск:
    #!/bin/sh
    exec true
    Just for kickks, I've added a pre-built service bundle for nagios to nosh, that will be available in version 1.13, that is just much this with a couple of standard frills such dependence information.
  • Файл run с набором инструментов runit:
    #!/bin/sh -e
    exec chpst -u nagios nagios
  • Файл run с набором инструментов s6:
    #!/command/execlineb -P
    s6-setuidgid nagios
    nagios
  • Файл run с наборами инструментов daemontools, daemontools-encore или freedt:
    #!/bin/sh -e
    exec setuidgid nagios nagios
  • Файл rc.main с perp toolet:
    #!/bin/sh -e
    exec 2>&1
    start() { execution runuid nagios nagios; }
    reset() { exit 0; }
    eval "$1" "$@"

Эта программа для запуска отдельного сервиса является единственной особенностью данного сервиса. Остальное не меняется от службы к службе. Один запрос на статус сервиса одинаков для всех сервисов, с помощью такой команды, как svstat. Включение и выключение автоматического запуска при бутстопе - это вопрос символических связей. Ручной запуск и остановка службы - это вопрос svc -u и svc -d. И так далее.

nosh имеет несколько прокладок, если они нужны, например systemctl статус и initctl статус. Важно отметить, что у него есть service shim, так что если вам действительно нравится service nagios status, то вы можете продолжать пользоваться им. ☺ Но забудьте об этом отвратительном взгляде на бизнес lockfile, и о понятии ad-hoc мониторинге. Вы не имеете дело ни с чем подобным, если у вас есть соответствующий менеджер по обслуживанию. Менеджер по обслуживанию осуществляет мониторинг и следит за процессом деймонов.

systemd

В коробке нет файла системного блока обслуживания для нагиос. Но многие уже написали свой собственный:

systemd не поставляется с командой shim service, но некоторые дистрибутивы Linux имеют один и тот же файл из другого исходного кода.

Дальнейшее чтение

0
28.03.2015, 03:52
2 ответа

Я также делаю вводную Linux. Я вижу, где это означает общее количество аргументов. Вы можете использовать это так:

#!/bin/bash
if [ $# = 2 ]
    then echo "Your name is $1 $2"
else
    echo "You need two arguments"
fi
0
28.01.2020, 02:51

Предположим, следующий Bash:

#!/bin/bash
echo $#

, и вы запускаете такие как: ./ ARG.SH G JT T UU
Это возврат 4, 4 - это номер аргумента, который вы пройти к вашей оболочке.

Очень хорошо расследовать ваши параметры вашего сценария оболочки.
У меня есть следующее использование программы: - Value Pattern -O PS_Command_Options
Тогда я могу исследовать такие как следующий код:

if [ "$1" = "--value" -a "$3" != "-o"  -o "$1" != "--value" -a "$3" = "-o" -o ! $# -eq 4 ]; then
    help;
    exit;
fi;
1
28.01.2020, 02:51

Теги

Похожие вопросы