Onde colocar arquivos da unidade systemd criados pelo usuário [duplicados]

13

Como diz o título, onde devo colocar o arquivo systemd para, por exemplo, Nginx nginx.service ou algo parecido no Ubuntu 16.04?

    
por user3448600 30.05.2017 / 14:26

2 respostas

16

O local recomendado é /etc/systemd/system/nginx.service

Em seguida, emita o comando:

systemctl enable nginx

E finalmente

systemctl start nginx
    
por 30.05.2017 / 14:36
14

Normalmente, no Ubuntu, os arquivos de unidade fornecidos pelo pacote entram no diretório /lib/systemd/system/ , e. /lib/systemd/system/nginx.service , enquanto o usuário forneceu ou qualquer modificação nos arquivos de unidade fornecidos pelo pacote em /etc/systemd/system/ directory.

Agora, para substituir, você pode:

  • Nomeie o arquivo da unidade como o pacote forneceu um, e. para sobrescrever /lib/systemd/system/nginx.service , você pode criar o arquivo /etc/systemd/system/nginx.service e colocar as diretivas lá

  • Ou você pode criar um snippet de drop-in que termine em .conf em um diretório que tenha o nome do arquivo de unidade original com .d anexado ao nome do diretório. você pode criar um arquivo chamado /etc/systemd/system/nginx.service.d/override.conf e colocar instruções lá

Agora, você pode aproveitar o comando systemctl edit para fazer todos os materiais manuais para você, isto é, ele criará o arquivo de substituição necessário para você (primeiro criará um arquivo temporário (com diretório (s) intermediário (s) para em trechos), e depois de salvar ele irá confirmar e rename() do arquivo temporário para o arquivo final desejado), e você só precisa editar o arquivo para colocar em suas substituições.

Por exemplo, para criar um snippet de substituição para ngnx.service ( /lib/systemd/system/nginx.service ) mencionado acima:

systemctl edit nginx.service

Por padrão, ele usará o arquivo /etc/systemd/system/nginx.service.d/override.conf . Se --full for usado, o arquivo de substituição completo /etc/systemd/system/nginx.service será usado ( o conteúdo original de /lib/systemd/system/nginx.service será copiado para este arquivo ).

Você também pode usar --runtime para criar o snippet em /run/systemd/system/ (no primeiro snippet inicial, em seguida, todo, então --runtime e --full não são mutuamente exclusivos), o que será temporário, é claro.

Você pode obviamente escolher o editor para usar, a ordem de precedência é:

$SYSTEMD_EDITOR > $EDITOR > $VISUAL > editor > nano > vim > vi
    
por 30.05.2017 / 16:32

Tags