Chúng tôi có một ứng dụng nội bộ với các dịch vụ systemd mà chúng tôi muốn triển khai bên ngoài các thư mục systemd thông thường (/ etc / systemd / system và / usr / lib / systemd / system). Vị trí đó nằm trên một đĩa khác (/ mnt / data trong ví dụ).
Dịch vụ systemd được kích hoạt bởi:
systemctl enable /mnt/data/sprinterd.service
tạo liên kết tượng trưng trong / etc / systemd / system
lrwxrwxrwx. 1 root root 27 Jun 20 22:47 sprinterd.service -> /mnt/data/sprinterd.service
Sau khi khởi động lại, dịch vụ không được tải vì không thể tìm thấy tệp đơn vị. Từ tạp chí, đầu tiên là một lỗi mà dịch vụ không tải được, sau đó là sự gắn kết của đĩa nơi đặt thiết bị.
Cannot add dependency job for unit sprinterd.service, ignoring: Unit sprinterd.service failed to load: No such file or directory.
systemd[1]: Mounted /mnt/data.
Từ / etc / fstab:
/dev/disk/by-uuid/c55e944f-5c63-48ad-8cd2-bd32d7b35c82 /mnt/data auto nosuid,nodev,nofail,x-gvfs-show 0 0
Để hoàn thiện tệp đơn vị dịch vụ:
[Unit]
Description=sprinterd
[Service]
Type=simple
Environment=TERM=linux
ExecStart=/srv/s1.erp/bin/sprinterd
Restart=always
RestartSec=5
KillSignal=SIGKILL
[Install]
WantedBy=multi-user.target
Tôi đã thử nghiệm điều này trên RHEL 7 và trên openSuSE 13.2.
Được hỗ trợ để có một tệp đơn vị dịch vụ hệ thống trên một đĩa khác ngoài / etc hoặc / usr? Làm thế nào có thể thay đổi thứ tự thực hiện giữa việc gắn đĩa và tải các tệp đơn vị systemd?
systemd
với bạn, Stephen. Tôi đang gặp chính xác cùng một vấn đề cũng có.
Requires=mnt-data.mount
...