init скрипт процес pid не работи

Така че имам инсталиран сървър за стрийминг 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 и преименувам старата папка обратно, тогава скриптът работи отново, така че как мога да го накарам да работи за по-новите версия/файлове?

Всяка помощ ще бъде оценена,

Благодаря.


person nrider    schedule 26.07.2014    source източник


Отговори (1)


Файлът е посочен във вашия начален скрипт в горната част:

PROG=red5
PIDFILE=/var/run/$PROG.pid

Така че опитайте да го изтриете (като root потребител):

rm /var/run/red5.pid
person Alexander Farber    schedule 27.07.2014
comment
Както казах по-горе, вече бях изтрил pid файла в тази директория. Изглежда, че pid файл се създава в тази папка само когато се стартира оригиналната работеща папка/скрипт red5, но след като скриптът бъде спрян, изглежда, че pid файлът се изтрива от папката var/run. Което е странно, че когато се опитва с новата папка red5 и предишния скрипт, се казва, че процесът е мъртъв, но „pid файлът съществува“, когато от това, което мога да кажа, не е така. - person nrider; 29.07.2014