Não consigo obter os itens corretos para inicializar no ubuntu-16.04 e systemd

1

Eu precisava criar uma nova imagem e optei pelo novo 16.04 ubuntu para poder obter novas versões de alguns pacotes e não instalar a partir do código-fonte. Até agora, lamento essa decisão, pois os documentos on-line são escassos.

Com o 12.04 e o 14.04, eu era capaz de reutilizar os scripts de inicialização para compilações personalizadas instalando um pacote, removendo (não removendo) ele, para criar os scripts de inicialização do ubuntu. Então eu poderia apenas editá-los para apontar para o arquivo de configuração correto e binário.

Por exemplo, para usar o mais recente openresty, eu poderia fazer isso:

apt-get install nginx
apt-get remove nginx

Então eu poderia apenas atualizar o script /etc/init.d/nginx para apontar para o meu arquivo binário / config personalizado e eu tenho um script de inicialização do ubuntu feliz. Ótimo!

Este método não funciona mais com o 16.04.

Eu editei:

  • /etc/init.d/nginx
  • /etc/init/nginx.conf
  • /lib/system.d/system/nginx.service

O ubuntu nunca puxa meu binário (que está em /usr/local/openresty/nginx/sbin/nginx ). ele sempre executa /sbin/nginx na inicialização (eu perdi a desinstalação do 'nginx-core' no início) ou nada. O mesmo vale para outros pacotes.

Os documentos do Ubuntu sobre a transição do upstart estão faltando nesta área, eles estão preocupados com o "start stop".

Eu tenho nenhuma idéia onde o Ubuntu está decidindo isso. Não consigo encontrar nenhum arquivo de configuração que aponte para /sbin/nginx . Nenhum log ajuda. Todo arquivo em potencial que eu encontrei aponta para o binário alternativo e config.

Se alguém puder compartilhar um bom recurso sobre o uso do novo sistema de lançamento e onde ele se parece / armazenar informações, eu ficaria incrivelmente grato.

Parece haver um banco de dados envolvido, já que ele detectou alterações de arquivos e pediu para eu recarregar - mas não o encontrei.

atualizar

depois de brincar muito, eu percebi o seguinte:

Parece que o pacote nginx instalou dois tipos de configurações, mas usa apenas um. algumas questões estavam ligadas a isso.

  1. /etc/init.d/nginx e /etc/init/nginx.conf
  2. /lib/systemd/system/nginx.service e /etc/systemd/system/nginx.service

de tentativa e erro:  * execute systemctl disable nginx.service para desativar / excluir a maioria dos links e arquivos  * remover o arquivo em /etc/systemd/system/nginx.service, se existir  Coloque um novo arquivo em /lib/systemd/system/nginx.service  * execute systemctl enable nginx.service

o arquivo em /lib/systemd/system/nginx.service deve ser um arquivo; não pode ser symlink (caso contrário, um erro muitos symlinks aparece)

isso parece funcionar por enquanto. Eu gostaria de poder usar symlinks como esses arquivos estão vinculados ao controle de versão.

    
por Jonathan Vanasco 27.04.2016 / 06:02

1 resposta

5

Você poderia criar um novo serviço para sua instalação personalizada e torná-lo automaticamente iniciado?

[Unit]
Description=Jonathan Vanasco nginx

[Service]
ExecStart=STARTUP COMMAND YOU WANT FOR CUSTOM

[Install]
WantedBy=multi-user.target

Em seguida, verifique se começa:

systemctl start NAMEOFCUSTOM.service

Em seguida, defina para iniciar automaticamente na inicialização:

systemctl enable NAMEOFCUSTOM.service
    
por 27.04.2016 / 20:03