Por que a aba de nomes de trabalhos personalizados da upstart não está completa no comando de serviço?

16

Eu estou acostumado a criar serviços iniciantes com um arquivo em /etc/init/<service>.conf e funciona perfeitamente, a única coisa que eu gostaria de ter é a conclusão de tabulação da mesma maneira que todo serviço em /etc/init.d / tenho agora mesmo.

Ao gravar o serviço sudo xx, o nome do serviço deve aparecer.

Existe uma maneira de adicionar serviços iniciantes a essa lista de autocompletar?

    
por José F. Romaniello 01.07.2013 / 16:08

1 resposta

25

Cada pacote que fornece um daemon padrão usando upstart é necessário para fornecer um symlink em /etc/init.d pela política Debian. Portanto, o preenchimento automático para sudo service name já funciona. Certifique-se de ter o pacote bash-completion instalado, se estiver com problemas.

Se você estiver criando seus próprios trabalhos iniciantes, envie um link simbólico para /etc/init.d/your_job to /lib/init/upstart-job da mesma forma que os outros trabalhos iniciantes já estão fazendo. Isso fará com que seus próprios trabalhos funcionem da mesma maneira.

Há trabalhos iniciantes especiais em /etc/init que não têm uma entrada correspondente em /etc/init.d . Estas são uma exceção. Da política do Debian:

  

Uma exceção a essa regra são scripts ou trabalhos fornecidos pela própria implementação do init; tais trabalhos podem ser necessários para um equivalente específico da implementação dos scripts /etc/rcS.d/ e podem não ter uma correspondência um-para-um com os scripts init.

Essas exceções não funcionam atualmente com bash-completion . No entanto, você pode usar start , stop , restart e reload diretamente sem service e o preenchimento automático funcionará. Por exemplo, sudo start shut autocomplete corretamente. Mas normalmente você não deve precisar chamar diretamente os trabalhos iniciantes que não têm uma entrada init.d correspondente.

Nota: Eu testei isso no Saucy. Se o suporte não aparecer em uma versão mais antiga, talvez ele não esteja disponível lá (mas você o obterá em breve quando atualizar para uma versão suficientemente nova).

    
por Robie Basak 01.07.2013 / 16:20