inicia um serviço no bootime no systemd

0

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

  1. Criado um softlink para o arquivo de /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.
  2. criou uma dependência no arquivo de serviço existente e em execução, como 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.

    
por RAJESH DASARI 14.08.2016 / 07:51

2 respostas

0

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.

    
por 14.08.2016 / 16:57
0

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 .

    
por 14.08.2016 / 16:33