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