Centos

在 CentOS 6.6 中找不到守護程序功能

  • November 23, 2015

我正在嘗試為某些服務設置 init.d 腳本 - 讓它成為less 我的腳本:

#!/bin/bash -xv
# description: read service
#Source function library

if [ -x /etc/rc.d/init.d/functions ];then
. /etc/rc.d/init.d/functions
fi

RETVAL=0
LESS=/usr/bin/less
PIDFILE=/var/run/read.pid

start() {
echo -n $"Starting $LESS service: "
daemon /usr/bin/less
RETVAL=$?
echo $! > $PIDFILE; 
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/LESS
echo
return $RETVAL
}

stop() {
echo -n $"Shutdown $LESS service: "
killproc /usr/bin/less
rm -f $PIDFILE
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/LESS
echo
return $RETVAL
}

restart() {
echo -n $"Restarting $LESS service: "
killproc /usr/bin/less
daemon /usr/bin/less
}


case "$1" in
start)
   start
   ;;
stop)
   stop
   ;;
status)
   if [ `pidof /var/run/webreaderd.pid` ];then
       echo "Running"
   else
       echo "Not running"
   fi
   ;;
restart|reload)
   stop
   start
   ;;
*)
   echo $"Usage: $0 {start|stop|restart|reload|status}"
   exit 1
esac
exit $?

但是在調試時/etc/init.d/read.sh start我得到了這個錯誤:line 15: daemon: command not found儘管我的 . /etc/rc.d/init.d/functions 存在且不為空。如何使我的daemon功能正常工作?

測試-x正在檢查文件是否存在並且是可執行的(或者在目錄遍歷/可搜尋的情況下)。

您的函式文件可能沒有執行權限。

實際上,當您將其採購到目前腳本中時,它不需要對其具有執行權限。您可以在沒有測試的情況下包含它

. /etc/rc.d/init.d/functions

或包含它(如果存在)

if [ -e /etc/rc.d/init.d/functions ];then
   . /etc/rc.d/init.d/functions
else
  echo "Some meaningful error message"
  exit 1
fi

如果它不存在並且您正在使用它所依賴的東西,您可能想要退出。

引用自:https://serverfault.com/questions/738171