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

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

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 perfeitamente na CLI. Usando o udev, o serviço systemd não foi iniciado (código de erro 5). Acontece que o problema não é do serviço, mas do systemd!

Especificamente, quando inicio o serviço sem caminhos absolutos da CLI, está tudo 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

Porém, quando inicio o serviço comabsolutopaths 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.

Qualquer ideia?

Responder1

Isso é normal. Sistemanão suportainiciar unidades em locais arbitrários; eles devem estar em um dos diretórios padrão pesquisados. 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 traduzidos para unidades .mount; por exemplo, systemctl start /mnt/dataé traduzido para systemctl start mnt-data.mount.

informação relacionada