[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Como lanzar un demonio con opciones



Hola, me estoy volviendo loco porque no consigo que funcione algo que a 
primera vista se me antojaba incluso sencillo:

Resulta que quiero que mi servidor pure-ftpd arranque siempre con unas 
determinadas opciones. He mirado el /etc/init.d/pure-ftpd y como no entiendo 
nada y no me veo capaz de modificarlo a mi gusto, he optado por crear uno a 
partir de /etc/init.d/skeleton (parece hasta fácil, pero el problema llega al 
intentar que ejecute el demonio con opciones).

Yo simplemente quiero que en el arranque, cuando el sistema ejecuta 
"/etc/init.d/pure-ftpd", lance este comando:

  /usr/sbin/pure-ftpd -lpuredb:/etc/pure-ftpd/pureftpd.pdb
  (así funciona el tema de usuarios virtuales que es lo que me interesa).


Este es un fragmento del archivo /etc/init.d/pure-ftpd que trato de construir 
sin éxito:


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Servidor FTP PureFTP"
NAME=pure-ftpd
OPTIONS=-lpuredb:/etc/pure-ftpd/pureftpd.pdb
DAEMON=/usr/sbin/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

#	Function that starts the daemon/service.
#
d_start() {
	start-stop-daemon --start --quiet --pidfile $PIDFILE \
		--exec $DAEMON $OPTIONS
}


La variable $OPTIONS la he añadido yo.
El problema es que no consigo que lance:
  /usr/sbin/pure-ftpd -lpuredb:/etc/pure-ftpd/pureftpd.pdb

Tal y como está me dice:
  root# /etc/init.d/pure-ftpd start
  Starting Servidor FTP PureFTP: pure-ftpd
  start-stop-daemon: invalid option -- l

He probado de todo, y el problema es la línea "--exec", por ejemplo, cosas 
como:
  --exec /bin/ls -l
  --exec "/bin/ls -l"
  --exec /bin/ls\ -l
No funcionan, creo que --exec espera SOLO una ruta a un archivo ejecutable.
He leído el man de "start-stop-daemon" pero no aclara mucho. Respecto a --exec 
dice:
"Si el proceso no existe, comienza uno nuevo, usando el ejecutable 
especificado por --exec, (o, si se especifica, por --startas ).  Cualquier 
argumento dado en la línea de órdenes después de -- se pasa sin modificación 
alguna al programa que se va a ejecutar." (y me quedo igual que antes de 
leerlo).



¿¿Cómo hago para añadir opciones al comando de manera elegante??
Digo lo de elegante porque me imagino que un método sería simplemente hacer un 
script que simplemente lanzase:
    /usr/sbin/pure-ftpd -lpuredb:/etc/pure-ftpd/pureftpd.pdb
Pero entiendo que debe haber alguna forma "elegante" de hacerlo usando el 
skeleton.


Gracias por cualquier ayuda.




-- 
que a mí ni me va ni me viene... pero por comentar...



Reply to: