16 votes

Pourquoi les noms des tâches personnalisées de l'upstart ne sont pas tabulés dans la commande de service ?

J'ai l'habitude de créer des services upstart avec un fichier en /etc/init/<service>.conf et cela fonctionne parfaitement bien, la seule chose que j'aimerais est d'avoir la complétion de tabulation de la même manière que tous les services dans /etc/init.d/ ont actuellement.

Lorsque vous écrivez sudo service xx, le nom du service doit apparaître.

Y a-t-il un moyen d'ajouter les services upstart à cette liste d'autocomplétion ?

25voto

Robie Basak Points 14936

Chaque paquet qui fournit un démon standard utilisant upstart est tenu de fournir un lien symbolique dans le répertoire /etc/init.d par la politique de Debian. Ainsi, l'autocomplétion pour sudo service _name_ fonctionne déjà. Assurez-vous que vous avez le bash-completion installé si vous rencontrez des problèmes.

Si vous créez vos propres jobs upstart, alors faites un lien symbolique (symlink) /etc/init.d/_your_job_ a /lib/init/upstart-job comme le font déjà les autres emplois de débutants. Cela permettra à vos propres emplois de fonctionner de la même manière.

Il existe des emplois spéciaux pour les débutants dans /etc/init qui n'ont pas d'entrée correspondante dans /etc/init.d . Ceux-ci sont une exception. De la charte Debian :

Une exception à cette règle est scripts ou les travaux fournis par l'implémentation init elle-même ; de tels travaux peuvent être nécessaires pour un équivalent spécifique à l'implémentation du /etc/rcS.d/ scripts et peuvent ne pas avoir une correspondance biunivoque avec le scripts init.

Ces exceptions ne fonctionnent pas actuellement avec bash-completion . Cependant, vous pouvez utiliser start , stop , restart y reload directement sans service et l'autocomplétion fonctionnera. Par exemple, sudo start shut correctement les autocomplétions. Mais normalement, vous ne devriez pas avoir besoin d'appeler directement des jobs upstart qui n'ont pas de correspondance init.d entrée.

Note : J'ai testé ceci sur Saucy. Si le support n'apparaît pas dans une ancienne version, il n'y est peut-être pas disponible (mais vous l'obtiendrez bientôt lorsque vous passerez à une version suffisamment récente).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X