Що таке status_of_proc, і як я це називаю?


10

У скрипті init 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ж не визначено ні в баші, ні в тирі:

$ type status_of_proc
status_of_proc: not found

Хоча якщо я вставив такий самий чек у nginx-скрипт, я отримав такий результат:

status_of_proc is a shell function

І запуск bash у файлі init сам дав додаткове пояснення:

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
}

І все ж вставлення того ж виклику функції в сценарій init, зроблений власноруч, повернув, що функція не визначена. Тож це не має нічого спільного з тим, що сценаріїв init є особливими. Також це не було заявлено раніше в сценарії init. Навколо мережі я прочитав, що вона є частиною LSB, але не можу зрозуміти, як це назвати. Хтось, будь ласка, допоможе мені зрозуміти, як використовувати цю чудову функцію?


Чому це питання вважається поза темою?
Пьотр Юркевич

@PiotrJurkiewicz -> Більше. :)
Мухаммед Хусейнбашич

Відповіді:


17

Я виявив, що функція отримана з /lib/lsb/init-functionsсценарію nginx init. Отже додавання:

. /lib/lsb/init-functions

На мій сценарій init вирішили проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.