Пытаюсь настроить скрипт 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
test проверяет, существует ли файл и является ли он исполняемым (или в случае каталога, доступного для просмотра / поиска).
Ваш файл функций, вероятно, не имеет разрешения на выполнение.
По правде говоря, ему не нужны разрешения на выполнение, поскольку вы используете его в своем текущем скрипте. Можно либо включить без теста
. /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
Вы, вероятно, захотите выйти, если он не существует и вы тоже используете то, на что он полагается.