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: