systemd start /etc/systemd/system/custom.service 無法啟動

systemd start /etc/systemd/system/custom.service 無法啟動

我有一個 openSUSE Leap 42.3,我嘗試透過 udev 運行 systemd 服務以自動執行備份。我使用一個簡單的 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

這很正常。系統不支援從任意位置啟動單位;它們必須位於標準搜尋目錄之一。如果您的單元已經在 中/etc/systemd/system,則無需指定其路徑。


systemctl 有各種快捷方式用於啟動不同的單元類型 - 目錄路徑被轉換為 .mount 單元;例如systemctl start /mnt/data被翻譯為systemctl start mnt-data.mount.

相關內容