Você deve armazenar seu conteúdo personalizado arquivos unitários em /etc/systemd/system/
. Depois de criá-los, você precisa ativá-los com systemctl enable name
, o que cria os links simbólicos necessários.
Eu coloquei um arquivo de serviço do systemd em usr/lib/systemd/system/testfile.service
.
Aqui está o arquivo de serviço:
[Unit]
Description=Test service
[Service]
Type=notify
ExecStart=/bin/dd.sh
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
Eu tentei iniciar o serviço no momento da inicialização tentando essas duas maneiras
/usr/lib/systemd/systemd
para /etc/systemd/system/multi-user.target.wants
(manualmente e usando o comando systemctl enable) e reinicializado o sistema, o serviço testfile foi iniciado com êxito no momento da inicialização. After=testfile.service
e Wants=testfile.service
, e reinicializou o serviço testfile do sistema iniciado com êxito. Mas quando eu coloco o arquivo /usr/lib/systemd/system
e sem qualquer serviço de abordagem de solução 1 ou 2 não é iniciado, sinto que colocar o arquivo de serviço em / usr / lib / systemd / system / é suficiente para qualquer serviço ser iniciado automaticamente , sem criar os softlinks para o diretório desejado ou criar a dependência com os outros serviços.
Por favor, deixe-me saber, como iniciar um serviço no momento da inicialização que está presente no diretório /usr/lib/systemd/system
sem abordagens de solução 1 ou 2?
Eu também criei arquivos predefinidos em usr / lib / systemd / system-preset / para desativar e ativar poucos serviços, parece que os arquivos predefinidos não foram executados, os serviços que eu desativei no arquivo predefinido ainda estão ativados após o arrancar. Por favor, deixe-me saber como depurar este problema.
Você deve armazenar seu conteúdo personalizado arquivos unitários em /etc/systemd/system/
. Depois de criá-los, você precisa ativá-los com systemctl enable name
, o que cria os links simbólicos necessários.
Quando você coloca um arquivo de unidade em /usr/lib/systemd/system
, você está meramente adicionando-o à biblioteca de unidades disponíveis no sistema. Mas você não disse ao sistema para executá-lo.
Normalmente, você executaria systemctl enable myservice
. Isso criará efetivamente o link simbólico que você fez manualmente.
Este link informa que a inicialização processa quais unidades iniciar no momento da inicialização.
Se você está acostumado a formulários antigos de init
, pode pensar nisso como o equivalente a colocar um arquivo em /etc/init.d
; até você adicionar um link para /etc/rc3.d/S##myservice
, então ele não será iniciado no momento da inicialização.
Agora, pode haver condições em que outros serviços podem depender do seu serviço e isso pode causar uma inicialização, mas se nada depender do seu serviço, você precisará ter o link simbólico criado por systemctl enable
.
Tags systemd systemd-boot