Estoy acostumbrado a crear servicios advenedizos con un archivo en /etc/init/<service>.conf
y funciona perfectamente bien, lo único que me gustaría es completar con pestañas de la misma manera que todos los servicios en /etc/init.d/ tienen ahora.
Al escribir sudo service xx debe aparecer el nombre del servicio.
¿Hay alguna forma de agregar servicios advenedizos a esa lista de autocompletado?
Respuesta aceptada:
Se requiere que cada paquete que proporcione un demonio estándar usando upstart proporcione un enlace simbólico en /etc/init.d
por la política de Debian. Entonces autocompletar para sudo service name
ya funciona Asegúrate de tener el bash-completion
paquete instalado si tiene problemas.
Si está creando sus propios trabajos advenedizos, entonces enlace simbólico /etc/init.d/your_job
a /lib/init/upstart-job
como los otros trabajos advenedizos ya lo están haciendo. Esto hará que sus propios trabajos funcionen de la misma manera.
Hay trabajos advenedizos especiales en /etc/init
que no tienen una entrada correspondiente en /etc/init.d
. Estos son una excepción. De la política de Debian:
Una excepción a esta regla son los scripts o trabajos proporcionados por la propia implementación init; dichos trabajos pueden ser necesarios para un equivalente específico de implementación de los scripts /etc/rcS.d/ y es posible que no tengan una correspondencia uno a uno con los scripts de inicio.
Estas excepciones no funcionan actualmente con bash-completion
. Sin embargo, puede usar start
, stop
, restart
y reload
directamente sin service
, y el autocompletado funcionará. Por ejemplo, sudo start shut
se autocompleta correctamente. Pero normalmente no debería necesitar llamar directamente a trabajos advenedizos que no tienen un init.d
correspondiente entrada.
Nota:probé esto en Saucy. Si el soporte no aparece en una versión anterior, quizás no esté disponible allí (pero lo obtendrá pronto cuando actualice a una versión suficientemente nueva).