Onde colocar os arquivos da unidade systemd criados pelo usuário

Onde colocar os arquivos da unidade systemd criados pelo usuário

Onde devo colocar o arquivo systemd, por exemplo, Nginx nginx.serviceou algo parecido no Ubuntu 16.04?

Responder1

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

Em seguida, emita o comando:

systemctl enable nginx

E finalmente

systemctl start nginx

Responder2

Normalmente, no Ubuntu, os arquivos de unidade fornecidos pelo pacote vão para o /lib/systemd/system/diretório, por exemplo, /lib/systemd/system/nginx.serviceenquanto o usuário fornecido ou qualquer modificação no(s) arquivo(s) de unidade fornecido(s) pelo pacote vai para o /etc/systemd/system/diretório.

Agora, para substituir, você pode:

  • Nomeie o arquivo da unidade como o pacote fornecido, por exemplo, para substituir /lib/systemd/system/nginx.service, você pode criar o arquivo /etc/systemd/system/nginx.servicee colocar as diretivas nele

  • Ou você pode criar um snippet drop-in terminando .confem um diretório com o nome do arquivo da unidade original e .danexado ao nome do diretório, por exemplo, você pode criar um arquivo chamado /etc/systemd/system/nginx.service.d/override.confe colocar instruções nele


Agora, você pode aproveitar o systemctl editcomando para fazer todo o trabalho manual para você, ou seja, ele criará o arquivo de substituição necessário para você (primeiro ele criará um arquivo temporário (com diretório(s) intermediário(s) para snippets drop-in), e após salvá-lo irá confirmar rename()o arquivo temporário no arquivo final desejado), e você só precisa editar o arquivo para colocar 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 --fullfor usado, o arquivo de substituição completo /etc/systemd/system/nginx.serviceserá usado (o conteúdo original /lib/systemd/system/nginx.serviceserá copiado para este arquivo).

Você também pode usar --runtimepara criar o snippet /run/systemd/system/(primeiro o snippet drop-in, depois inteiro --runtimee --fullnão são mutuamente exclusivos) que será temporário, é claro.

Obviamente você pode escolher o editor a ser usado, a ordem de precedência é:

$SYSTEMD_EDITOR > $EDITOR > $VISUAL > editor > nano > vim > vi

informação relacionada