systemd start /etc/systemd/system/custom.service не может запуститься

systemd start /etc/systemd/system/custom.service не может запуститься

У меня openSUSE Leap 42.3, и я пытаюсь запустить службу systemd через udev, чтобы автоматизировать резервное копирование. Я использую простую службу systemd, которая запускает скрипт резервного копирования, который отлично работает из CLI. При использовании udev служба systemd не запускается (код ошибки 5). Оказывается, проблема не в службе, а в systemd!

В частности, когда я запускаю службу без абсолютных путей из CLI, все нормально:

# 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

Однако, когда я запускаю службу сабсолютныйpaths завершается неудачей, поскольку он пытается запустить службу .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.

Есть идеи?

решение1

Это нормально. Systemdне поддерживаетзапуск юнитов из произвольных мест; они должны быть в одном из стандартных каталогов поиска. Если ваш юнит уже находится в /etc/systemd/system, нет необходимости указывать его путь.


systemctl имеет различные сочетания клавиш для запуска различных типов модулей – пути к каталогам преобразуются в модули .mount; например, systemctl start /mnt/dataпреобразуется в systemctl start mnt-data.mount.

Связанный контент