Debian-Wheezy
什麼是 status_of_proc,我該如何稱呼它?
在 Debian 7 (Wheezy) 中 nginx 的初始化腳本中,我閱讀了以下摘錄:
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-script 中插入相同的檢查,我會得到以下結果:
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 }
然而,將相同的函式呼叫插入到我自己製作的初始化腳本中返回該函式未定義。所以它與初始化腳本的特殊性無關。之前在 init 腳本中也沒有聲明它。在網上我讀到它是 LSB 的一部分,但我不知道如何稱呼它。有人可以幫我弄清楚如何使用這個奇妙的功能嗎?
我發現該函式來自
/lib/lsb/init-functions
nginx init 腳本。所以添加:. /lib/lsb/init-functions
我的初始化腳本解決了這個問題。