Status_of_proc क्या है, और मैं इसे कैसे कॉल करूं?


10

डेबियन 7 (व्हीजेई) में नगनेक्स के इनिट स्क्रिप्ट में मैंने निम्नलिखित उद्धरण पढ़ा:

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-script में डाला तो मुझे निम्नलिखित परिणाम मिला:

status_of_proc is a shell function

और इनिट फ़ाइल पर चल रहे बैश ने खुद को और अधिक विवरण प्रदान किया:

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 स्क्रिप्ट में घोषित किया गया है। नेट के आसपास मैंने पढ़ा कि यह एलएसबी का हिस्सा है, लेकिन मैं इसका पता नहीं लगा सकता कि इसे कैसे कॉल किया जाए। क्या कोई कृपया मुझे यह पता लगाने में मदद करेगा कि इस अद्भुत फ़ंक्शन का उपयोग कैसे करें?


इस प्रश्न को ऑफ-टॉपिक क्यों माना जाता है?
पियोत्र जर्कविक्ज़

@PiotrJurkiewicz -> अब और नहीं। :)
मुहम्मद हुसैनबासिक

जवाबों:


17

मैंने पाया कि फ़ंक्शन को /lib/lsb/init-functionsनेगनेक्स इनिट स्क्रिप्ट से लिया गया था । इसलिए जोड़ना:

. /lib/lsb/init-functions

मेरे init स्क्रिप्ट में समस्या को हल किया गया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.