守护进程function没有在CentOS 6.6中find

我正在尝试为某些服务设置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 $? 

但是,当debugging/etc/init.d/read.sh start我得到这个错误: line 15: daemon: command not found尽pipe我的事实。 /etc/rc.d/init.d/functions存在,它不是空的。 如何使我的daemonfunction工作?

-xtesting检查文件是否存在并且是可执行的(或者在目录遍历/可search的情况下)。

你的函数文件可能没有执行权限。

事实上,它不需要具有执行权限,因为您正在将它采集到当前脚本中。 你可以包括它没有testing

 . /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 

你可能想要退出,如果它不存在,你也在使用它依赖的东西。