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
.