Что такое status_of_proc и как мне его назвать?

10

В скрипте инициализации nginx в Debian 7 (Wheezy) я прочитал следующую выдержку:

status)
            status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
            ;;

Этот код работает нормально и sudo service nginx statusвыводит [ ok ] nginx is running. Пока status_of_procне определено ни в bash, ни в dash:

$ type status_of_proc
status_of_proc: not found

Хотя, если я вставил такую ​​же проверку в скрипт nginx, я получил следующий результат:

status_of_proc is a shell function

И запуск bash на самом файле инициализации дал дальнейшее объяснение:

status_of_proc is a function
status_of_proc () 
{ 
    local pidfile daemon name status OPTIND;
    pidfile=;
    OPTIND=1;
    while getopts p: opt; do
        case "$opt" in 
            p)
                pidfile="$OPTARG"
            ;;
        esac;
    done;
    shift $(($OPTIND - 1));
    if [ -n "$pidfile" ]; then
        pidfile="-p $pidfile";
    fi;
    daemon="$1";
    name="$2";
    status="0";
    pidofproc $pidfile $daemon > /dev/null || status="$?";
    if [ "$status" = 0 ]; then
        log_success_msg "$name is running";
        return 0;
    else
        if [ "$status" = 4 ]; then
            log_failure_msg "could not access PID file for $name";
            return $status;
        else
            log_failure_msg "$name is not running";
            return $status;
        fi;
    fi
}

Однако вставка того же самого вызова функции в скрипт инициализации, сделанный мной, вернула, что функция не была определена. Так что это не имеет ничего общего с тем, что сценарии инициализации являются особенными. Также это не объявлено ранее в сценарии инициализации. Вокруг сети я читал, что это часть LSB, но я не могу понять, как это назвать. Кто-нибудь, пожалуйста, помогите мне разобраться, как использовать эту замечательную функцию?

Rovanion
источник
Почему этот вопрос считается не по теме?
Петр Юркевич
@PiotrJurkiewicz -> Уже нет. :)
Мухамед Хусейнбашич

Ответы:

17

Я обнаружил, что функция была получена из /lib/lsb/init-functionsсценария инициализации nginx. Итак добавив:

. /lib/lsb/init-functions

Чтобы мой скрипт инициализации решил проблему.

Rovanion
источник