sudo systemctl enable <service-name> ativará o serviço no momento da inicialização.
link tem uma lista de comandos úteis. E sempre há man systemctl e man systemd .
Estou usando o systemd para lidar com algumas tarefas e tenho um arquivo de serviço que funciona bem quando ativado com systemctl .
Agora, gostaria de ativá-lo automaticamente a partir da primeira inicialização.
Eu sei que colocar um arquivo de substituição em /etc/systemd/system/ substitui o comportamento do arquivo com o mesmo nome em /lib/systemd/system/ .
Existe uma maneira de ativar um arquivo de serviço automaticamente apenas para colocá-lo em algum diretório?
sudo systemctl enable <service-name> ativará o serviço no momento da inicialização.
link tem uma lista de comandos úteis. E sempre há man systemctl e man systemd .
Você pode usar systems.preset para unidades ativadas padrão.
Systems.preset permite configurar o conjunto de unidades a serem ativadas / desativadas
vendor preset em systemctl status unit refere-se a isso.
Para mais informações sobre como usar isso, consulte a página de manual vinculada
IMPORTANT NOTE: The following works for me under Ubuntu. It should work as is under Debian. RPM based distros prevent the auto-start by default, but it may still get your closer to your goal.
Na maioria dos casos, você deseja instalá-lo na multi-user.target usando a seção de instalação da seguinte forma:
[Install]
WantedBy=multi-user.target
Isso significa que o script your-package.postinst iniciará automaticamente o daemon para você.
Note que se você tiver seu próprio script your-package.postinst , você deve incluir o ajudante Debian como em:
#!/bin/sh
#DEBHELPER#
...your own script here...
Sem o padrão #DEBHELPER# , o empacotador não adicionará o código padrão e, como resultado, seu daemon não será ativado e iniciado automaticamente. O código adicionado irá ativar e iniciar o serviço:
systemctl enable <service-name>
systemctl start <service-name>
a menos que o serviço seja static (não tem uma seção [Install] conforme mostrado acima.) Um serviço estático requer que uma linha de comando especial seja ativada e que não está disponível por padrão:
systemctl add-wants multi-user.target <service-name>
Como podemos ver, o comando inclui multi-user.target , que o padrão #DEBHELPER# (systemd, na verdade) não tem nenhuma pista a menos que você tenha uma seção [Install] .
O pacote também deve ser criado com a extensão systemd . Isso significa ter o seguinte no seu arquivo debian/rules :
%:
dh $@ --with systemd --parallel
Isso deve prepará-lo.
Tags systemd