데비안 7 (Wheezy)의 nginx init 스크립트에서 다음 발췌문을 읽었습니다.
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에서 대시로 정의되지 않았습니다.
$ type status_of_proc
status_of_proc: not found
nginx 스크립트에 동일한 검사를 삽입하면 다음과 같은 결과가 나타납니다.
status_of_proc is a shell function
그리고 init 파일 자체에서 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
}
그러나 같은 함수 호출을 자신이 만든 init 스크립트에 삽입하면 함수가 정의되지 않았다고 반환했습니다. 따라서 init 스크립트는 특별하지 않습니다. init 스크립트에서 이전에 선언되지 않았습니다. 그물 주위에서 나는 그것이 LSB의 일부라는 것을 읽었지만 어떻게 전화 해야하는지 알 수 없습니다. 누군가이 훌륭한 기능을 어떻게 사용하는지 알아낼 수 있습니까?
이 질문이 주제를 벗어난 것으로 간주되는 이유는 무엇입니까?
—
Piotr Jurkiewicz
@PiotrJurkiewicz-> 더 이상은 아닙니다. :)
—
Muhamed Huseinbašić