Я создаю сценарий запуска Red5 на Ubuntu. Red5 установлен в / opt / red5
Ниже приведен рабочий сценарий для CentOS Box, на котором работает Red5 [код]
#!/bin/sh
PROG=red5
RED5_HOME=/opt/red5/dist
DAEMON=$RED5_HOME/$PROG.sh
PIDFILE=/var/run/$PROG.pid
# Source function library
. /etc/rc.d/init.d/functions
[ -r /etc/sysconfig/red5 ] && . /etc/sysconfig/red5
RETVAL=0
case "$1" in
start)
echo -n $"Starting $PROG: "
cd $RED5_HOME
$DAEMON >/dev/null 2>/dev/null &
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo $! > $PIDFILE
touch /var/lock/subsys/$PROG
fi
[ $RETVAL -eq 0 ] && success $"$PROG startup" || failure $"$PROG startup"
echo
;;
stop)
echo -n $"Shutting down $PROG: "
killproc -p $PIDFILE
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$PROG
;;
restart)
$0 stop
$0 start
;;
status)
status $PROG -p $PIDFILE
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
RETVAL=1
esac
exit $RETVAL
[/ code] Что мне нужно заменить на Ubuntu в приведенном выше скрипте.
Мой Red5 находится в / opt / red5 /, и чтобы запустить его вручную, я всегда делаю
/opt/red5/dist/red5.sh из Ubuntu Поскольку я не нашел rc.d / functions на Ubuntu на моем ноутбуке, также /etc/init.d/functions меня не существовало. Я хотел бы иметь возможность использовать их в сервисе, как это делают дистрибутивы Red Hat. Я проверил / lib / lsb / init-functions.
Вероятно, вам нужен файл /lib/lsb/init_functions
.
Вы говорите, что проверили этот файл. Что вы имеете в виду? Вы пытались использовать его вместо /etc/rc.d/init.d/functions
в этой строке в сценарии запуска? Были ли у вас сообщения об ошибках в журналах?
Вы должны попробовать смоделировать свой сценарий после других сценариев в /etc/init.d
.
Хорошо, вот что я сделал, это сценарий, который на самом деле работает
#The script to start Red 5 Tapas Mishra
##Begin some thing some thing
### BEGIN INIT INFO
# Provides: Red5
# Required-Start: No idea
# Required-Stop: No idea
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Red5 Streaming Server
# Description: Ubuntu init script for Red5 server
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON="/opt/red5/dist/red5.sh"
NAME="Red5"
RED5_HOME=/opt/red5/dist
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
DESC="Red5 Ubuntu Server"
. /lib/lsb/init-functions
set -e
PROCESS_DIR="/opt/red5/dist"
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
start-stop-daemon --start --pidfile $PIDFILE \
--chdir $RED5_HOME --background --make-pidfile \
--exec $DAEMON
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
--name java
rm -f $PIDFILE
log_end_msg $?
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
--name java
rm -f $PIDFILE
sleep 1
echo -e
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0