les cuento tengo un script en shellscript ese hace que maneje un proceso a mi gusto, (start - stop - restart) les dejo el script:
Cita:
Que pasa?...#!/bin/sh
#vollständiges loop Startscript , restartet einen Gameserver bei Crash
#Autor: Zyrusthc
#Website: http://zyrusthc.homeip.net
#
#Syntax: ./startscript $X
# $X = start stop restart restartfork
#
#License: GPL
#http://www.gnu.org/licenses/gpl.html
BASEDIR=/home/irgentwas
PROGRAMM="mohaa_lnxded"
PARAM="+set dedicated 2 +set net_port 12203 +exec custom.cfg"
LOGFILE=$BASEDIR/server.log
INITPIDFILE=$BASEDIR/moh.init.pid
PIDFILE=$BASEDIR/moh.pid
COMMAND="$PROGRAMM $PARAM"
STARTSCRIPTNAME=$0
case "$1" in
start)
echo "Starte $STARTSCRIPTNAME und Kommando: \"$COMMAND\""
$0 fork &
echo $! > $INITPIDFILE
disown
;;
stop)
if test -f $INITPIDFILE; then
if ps aux | grep $(cat $INITPIDFILE) 1> /dev/null 2> /dev/null; then
echo "killing $STARTSCRIPTNAME"
kill -9 $(cat $INITPIDFILE) 1> /dev/null 2> /dev/null
fi
rm $INITPIDFILE
fi
if test -f $PIDFILE; then
if ps aux | grep $(cat $PIDFILE) 1> /dev/null 2> /dev/null; then
echo killing $PROGRAMM
kill -TERM $(cat $PIDFILE) 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
;;
restart)
if test -f $PIDFILE; then
if ps aux | grep $(cat $PIDFILE) 1> /dev/null 2> /dev/null; then
echo "killing $PROGRAMM für restart..."
kill -TERM $(cat $PIDFILE) 1> /dev/null 2> /dev/null
#kill -9 $(cat $PIDFILE) 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
;;
restartfork)
$0 stop
$0 start
;;
fork)
while [ true ]; do
if test -f $LOGFILE; then
mv $LOGFILE $LOGFILE.old
fi
$BASEDIR/$COMMAND 2> $LOGFILE &
echo $! > $PIDFILE
wait
done
;;
*)
echo "Usage: $0 {start|stop|restart|restartfork}"
;;
esac
#vollständiges loop Startscript , restartet einen Gameserver bei Crash
#Autor: Zyrusthc
#Website: http://zyrusthc.homeip.net
#
#Syntax: ./startscript $X
# $X = start stop restart restartfork
#
#License: GPL
#http://www.gnu.org/licenses/gpl.html
BASEDIR=/home/irgentwas
PROGRAMM="mohaa_lnxded"
PARAM="+set dedicated 2 +set net_port 12203 +exec custom.cfg"
LOGFILE=$BASEDIR/server.log
INITPIDFILE=$BASEDIR/moh.init.pid
PIDFILE=$BASEDIR/moh.pid
COMMAND="$PROGRAMM $PARAM"
STARTSCRIPTNAME=$0
case "$1" in
start)
echo "Starte $STARTSCRIPTNAME und Kommando: \"$COMMAND\""
$0 fork &
echo $! > $INITPIDFILE
disown
;;
stop)
if test -f $INITPIDFILE; then
if ps aux | grep $(cat $INITPIDFILE) 1> /dev/null 2> /dev/null; then
echo "killing $STARTSCRIPTNAME"
kill -9 $(cat $INITPIDFILE) 1> /dev/null 2> /dev/null
fi
rm $INITPIDFILE
fi
if test -f $PIDFILE; then
if ps aux | grep $(cat $PIDFILE) 1> /dev/null 2> /dev/null; then
echo killing $PROGRAMM
kill -TERM $(cat $PIDFILE) 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
;;
restart)
if test -f $PIDFILE; then
if ps aux | grep $(cat $PIDFILE) 1> /dev/null 2> /dev/null; then
echo "killing $PROGRAMM für restart..."
kill -TERM $(cat $PIDFILE) 1> /dev/null 2> /dev/null
#kill -9 $(cat $PIDFILE) 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
;;
restartfork)
$0 stop
$0 start
;;
fork)
while [ true ]; do
if test -f $LOGFILE; then
mv $LOGFILE $LOGFILE.old
fi
$BASEDIR/$COMMAND 2> $LOGFILE &
echo $! > $PIDFILE
wait
done
;;
*)
echo "Usage: $0 {start|stop|restart|restartfork}"
;;
esac
Bueno al hacer un shell_exec(); con php este nunca obtiene la respuesta de que si el servicio quedo arriba o no se pudo subir etc. ¿Porque?, pues debe ser por el uso del WHILE en script, entonces la pregunta seria.
¿Como podria obtener un respuesta usando este script?
Espero que me puedan ayudar si necesitan mas info para ayudarme no duden en pedirla.
Saludos y de antemano Gracias.