Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: yeikos en 26 Mayo 2010, 01:06 am



Título: [Fedora] Servicio casero
Publicado por: yeikos en 26 Mayo 2010, 01:06 am
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
  1. cp webcam /usr/sbin
  2. cd /etc/init.d
  3. touch wcam
  4. chmod +x wcam

Código
  1. #!/bin/sh
  2. # chkconfig: 345 90 10
  3. # description: webcamlive
  4.  
  5. # Source function library.
  6. . /etc/rc.d/init.d/functions
  7.  
  8. prog=webcam
  9. softbin=/usr/sbin/$prog
  10.  
  11.  
  12. OPTIONS=""
  13.  
  14. # Source an auxiliary options file if we have one, and pick up OPTIONS,
  15. #if [ -r /etc/sysconfig/$prog ]; then
  16. # . /etc/sysconfig/$prog
  17. #fi
  18.  
  19. RETVAL=0
  20.  
  21. start() {
  22. echo -n $"Starting $prog: "
  23. daemon $softbin -d $OPTIONS
  24. RETVAL=$?
  25. echo
  26. [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
  27. }
  28. stop() {
  29. echo -n $"Stopping $prog: "
  30. killproc $softbin
  31. RETVAL=$?
  32. echo
  33. [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
  34. }
  35.  
  36. restart() {
  37. stop
  38. start
  39. }
  40.  
  41. reload() {
  42. echo -n $"Reloading $prog: "
  43. killproc $softbin -HUP
  44. RETVAL=$?
  45. echo
  46. }
  47.  
  48. # See how we were called.
  49. case "$1" in
  50. start)
  51. start
  52. ;;
  53. stop)
  54. stop
  55. ;;
  56. restart)
  57. restart
  58. ;;
  59. reload)
  60. reload
  61. ;;
  62. condrestart)
  63. [ -f /var/lock/subsys/$prog ] && restart
  64. ;;
  65. status)
  66. status $softbin
  67. ;;
  68. *)
  69. echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
  70. exit 1
  71. esac
  72.  
  73. exit $RETVAL

Código
  1. chkconfig --add wcam
  2. chconfig wcam on
  3. service wcam start
  4. 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.



Título: Re: [Fedora] Servicio casero
Publicado por: dantemc en 26 Mayo 2010, 04:02 am
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 &