Por que minha unidade Systemd arkos-redis está carregada, mas inativa (morta)?

1

Veja o que eu tenho no meu arquivo de serviço, arkos-redis.service :

GNU nano 2.4.2   File: /usr/lib/systemd/user/arkos-redis.service              

[Unit]
Description=Advanced key-value store

[Service]
ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf
ExecStop=/usr/bin/redis-cli shutdown

[Install]
WantedBy=default.target

Mas quando estou na inicialização, recebo o seguinte status:

[vagrant@arkos-vagrant etc]$ systemctl --user status arkos-redis.service
��arkos-redis.service - Advanced key-value store
   Loaded: loaded (/usr/lib/systemd/user/arkos-redis.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
    
por Folatt 11.08.2015 / 19:13

1 resposta

2

Como seu arquivo de serviço está em /usr/lib/systemd/user , ele é tratado como um serviço de usuário e é iniciado pela sua própria instância de systemd (executado como systemd --user ). Isso significa, entre outras coisas, que o processo é iniciado sob seu usuário, não root , e é iniciado para cada usuário que efetua login. Com base na referência ao arquivo de configuração em /etc , eu diria que apenas um A instância deste processo deve estar em execução a qualquer momento e deve ser executada como root (ou outra conta do sistema). Se esse processo for iniciado como root , mova esse arquivo para /usr/lib/systemd/system (ou melhor ainda, /etc/systemd/system , já que é seu próprio arquivo de serviço) e ignore o restante desta resposta.

Se o seu arquivo de serviço deve começar com o seu próprio usuário, observe que apenas os seguintes destinos estão disponíveis no modo de usuário:

   When systemd runs as a user instance, the following special units are available, which have
   similar definitions as their system counterparts: default.target, shutdown.target,
   sockets.target, timers.target, paths.target, bluetooth.target, printer.target,
   smartcard.target, sound.target.

Nem multi-user.target nem network.target estão disponíveis e, portanto, seu serviço não será iniciado automaticamente. Se você quiser começar, altere multi-user.target para default.target e se livre de After=network.target . Em seguida, execute systemctl --user enable arkos-redis.service .

    
por 11.08.2015 / 21:23

Tags