systemd start /etc/systemd/system/custom.service não pode iniciar

0

Eu tenho um openSUSE Leap 42.3 e tento executar um serviço systemd via udev para automatizar meus backups. Eu uso um serviço systemd simples que inicia o script de backup que funciona muito bem a partir do CLI. Usando o udev, o serviço systemd não é iniciado (código de erro 5). Acontece que o problema não é do serviço, mas do systemd!

Especificamente, quando eu inicio o serviço sem caminhos absolutos da CLI, tudo está bem:

# systemctl start hdd-backup.service
# systemctl status hdd-backup.service 
● hdd-backup.service - Backup to external HDD
   Loaded: loaded (/etc/systemd/system/hdd-backup.service; static; vendor preset: disabled)
   Active: active (running) since Tue 2018-04-10 21:09:34 EEST; 8s ago
 Main PID: 14455 (backup.sh)
    Tasks: 3 (limit: 512)
   CGroup: /system.slice/hdd-backup.service
           ├─14455 /bin/bash /usr/local/bin/backup.sh
           ├─14460 /sbin/mount.ntfs /dev/sdc1 /mnt/backup -o rw
           └─14463 sleep 3000

No entanto, quando inicio o serviço com caminhos absolutos , ele falha porque tenta iniciar o serviço .mount (!!!):

systemctl start /etc/systemd/system/hdd-backup.service
Failed to start etc-systemd-system-hdd\x2dbackup.service.mount: Unit etc-systemd-system-hdd\x2dbackup.service.mount failed to load: No such file or directory.

Alguma ideia?

    
por Peter 10.04.2018 / 20:51

1 resposta

2

Isso é normal. O Systemd não suporta unidades iniciais a partir de locais arbitrários; eles devem estar em um dos diretórios pesquisados padrão. Se sua unidade já estiver em /etc/systemd/system , nunca será necessário especificar seu caminho.

systemctl possui vários atalhos para iniciar diferentes tipos de unidades - os caminhos de diretório são convertidos para unidades .mount; por exemplo. systemctl start /mnt/data é traduzido para systemctl start mnt-data.mount .

    
por 10.04.2018 / 22:10

Tags