Meu script de inicialização não está aparecendo no preenchimento automático do serviço

3

Eu fiz um script de inicialização para um site fantasma. Estou usando o Linux Mint 16 (também conhecido como Ubuntu 13.10)

Quando digito isso, meu script não é exibido no preenchimento automático.

sudo service f<tab>

Qualquer motivo? Eu recebo um script diferente "friendly_recover", mas não o meu.

Obrigado!

Mike

/etc/init/furtheryet.org.conf

# furtheryet.org

start on startup

script
    cd /var/www/furtheryet.org/ghost
    npm start --production
end script
    
por Michael Cole 11.02.2014 / 02:10

3 respostas

-1

Você espera que sudo service f<tab> seja preenchido automaticamente com sudo service furtheryet.org.conf ?

Não, não vai, porque:

  • é apenas um arquivo de configuração
  • está localizado no diretório errado para esse

Você deve considerar a pasta /etc/init.d :

  • A pasta /etc/init/ contém apenas arquivos de configuração usados por Upstart .

  • A pasta /etc/init.d contém scripts de shell que respondem a start , stop , restart , reload (e o que você poderia implementar).

Outras leituras: link

Dito isso, para tornar seu script autocompletar, você deve pelo menos colocá-lo na pasta /etc/init.d e torná-lo executável.

Mas o seu script é na verdade apenas um arquivo de configuração. Você deve considerar escrever um service / init script e coloque-o na sua pasta /etc/init.d .

Em alguns casos, percebo que, mesmo que o script esteja em /etc/init.d , você pode ter problemas com o preenchimento automático em Ubuntu 13.10 as root user.

Para corrigir isso, como usuário root, edite o arquivo $HOME/.bachrc e descomente o seguinte:

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

Em seguida, recarregue seu arquivo .bashrc executando: . $HOME/.bashrc

    
por 11.02.2014 / 04:20
1

Essa é uma pergunta antiga, mas eu a acessei pelo Google e a resposta selecionada está errada.

Os trabalhos do Upstart devem ser colocados na pasta /etc/init .

Cada pacote que fornece um daemon padrão usando o upstart é necessário para fornecer um symlink em /etc/init.d pela política Debian.

Em seguida, o preenchimento automático para o nome do serviço sudo funcionará.

Há trabalhos iniciantes especiais em / etc / init que não possuem uma entrada correspondente em /etc/init.d. Estas são uma exceção.

    
por 20.04.2014 / 14:36
0

Se você estiver no mesmo diretório, digite ./f e, em seguida, clique em <tab> . Caso contrário, você deverá digitar: /etc/init/f antes de acessar <tab> .

E o seu script tem que ser executável:

chmod +x /etc/init/furtheryet.org.conf
    
por 11.02.2014 / 02:22

Tags