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