[Fedora] Servicio casero

Iniciado por yeikos, 26 Mayo 2010, 01:06 AM

0 Miembros y 1 Visitante están viendo este tema.

yeikos

Buenas noches...

Hará unas semanas que creé un programa en C que tomaba capturas de la webcam (cliente) y las enviaba por internet a otro programa para su almacenamiento (servidor). El caso es que he portado el servidor a linux y mi intención es ejecutarlo en segundo plano, y esto es lo que he hecho:

Código (bash) [Seleccionar]
cp webcam /usr/sbin
cd /etc/init.d
touch wcam
chmod +x wcam


Código (bash) [Seleccionar]
#!/bin/sh
# chkconfig: 345 90 10
# description: webcamlive

# Source function library.
. /etc/rc.d/init.d/functions

prog=webcam
softbin=/usr/sbin/$prog


OPTIONS=""

# Source an auxiliary options file if we have one, and pick up OPTIONS,
#if [ -r /etc/sysconfig/$prog ]; then
# . /etc/sysconfig/$prog
#fi

RETVAL=0

start() {
echo -n $"Starting $prog: "
daemon $softbin -d $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}
stop() {
echo -n $"Stopping $prog: "
killproc $softbin
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
}

restart() {
stop
start
}

reload() {
echo -n $"Reloading $prog: "
killproc $softbin -HUP
RETVAL=$?
echo
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
condrestart)
[ -f /var/lock/subsys/$prog ] && restart
;;
status)
status $softbin
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
exit 1
esac

exit $RETVAL


Código (bash) [Seleccionar]
chkconfig --add wcam
chconfig wcam on
service wcam start
Iniciando webcam:


El problema es que yo pensaba que ejecutaria el programa como servicio en segundo plano, y no es así, el programa se queda en "Iniciando webcam:", y funciona, pero es como si ejecutase el programa directamente desde la consola, si cierro ésta se cierra el programa.


dantemc

puedes ejeutar el programa con nohup, ejecuta el programa y lo desvincula de la consola, ahora si lo quieres en segundo plano puedes aniadirle al programa un &, asi programa &, y si quieres el paquete completo
nohup programa &
8-D