Така че имам инсталиран сървър за стрийминг red5 и мога да го накарам да стартира и да остане стартиран при затваряне на прозореца на ssh терминала, като използвам следния код на init.d скрипт:
#!/bin/bash
# For RedHat and cousins:
# chkconfig: 2345 85 85
# description: Red5 flash streaming server
# processname: red5
# Created By: Sohail Riaz ([email protected])
PROG=red5
RED5_HOME=/usr/local/red5
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
Така че мога просто да напиша „red5 start“, „red5 status“ и „red5 stop“.
Сега преименувах папката red5 на red5bak и тествах нова актуализирана версия в нова папка „red5“, която също използва файл red5.sh за стартиране. Мога да стартирам това ръчно без проблем и работи по предназначение, но когато се стартира с горните команди и код, се казва, че стартира „ОК“, но изглежда не, и когато използвам команда „статус“, получавам грешка red5 dead but pid file exists
.
Опитах да изтрия pid red5 файловете в папките var/run и lock и да рестартирам сървъра, но все още получавам същия проблем.
Ако изтрия по-новата папка red5 и преименувам старата папка обратно, тогава скриптът работи отново, така че как мога да го накарам да работи за по-новите версия/файлове?
Всяка помощ ще бъде оценена,
Благодаря.