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
cp webcam /usr/sbin cd /etc/init.d touch wcam chmod +x wcam
Código
#!/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
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.