Você deve verificar se a unidade à qual o link simbólico está se referindo está montada no momento em que os serviços estão sendo iniciados.
Eu tenho um serviço systemd personalizado no CentOS 7 cujo script de inicialização vive sob controle de versão em /srv/etc/systemd/website.service
:
[Unit]
Description=website
After=syslog.target network.target
[Service]
Type=forking
User=website
ExecStart=/opt/perl5/perls/perl-5.20.2/bin/hypnotoad /var/www/domains/<domain>/script/site.pl
ExecStop=/opt/perl5/perls/perl-5.20.2/bin/hypnotoad --stop /var/www/domains/<domain>/script/site.pl
[Install]
WantedBy=multi-user.target
Se eu executar systemctl enable /srv/etc/systemd/website.service
, ele cria os links simbólicos e eu posso executar systemctl start website
e o serviço aparece, mas ele reclama da falta da seção [Instalar], que claramente não está correta:
$ sudo systemctl enable /srv/etc/systemd/website.service
Created symlink from /etc/systemd/system/website.service to /srv/etc/systemd/website.service.
The unit files have no [Install] section. They are not meant to be enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).
Após a reinicialização, o serviço não é exibido e um systemctl start website
retorna Failed to start website.service: Unit not found
. Se eu executar systemctl daemon-reload
, o comando start
funcionará novamente.
No entanto, se eu copiar o arquivo em / etc / systemd / system e executar systemctl enable website
, tudo funcionará como esperado e o serviço aparecerá imediatamente após a reinicialização.
É realmente possível fazer o que estou tentando fazer, ou eu só preciso viver com a lembrança de copiar manualmente o script systemd do repositório do Git se eu fizer alguma alteração?
Tags systemd