Có vài nhược điểm lưu trữ tập tin thông thường Trong /etc/systemd/system
, không phải vì bản thân systemd, mà vì hệ thống
cư trú tại vị trí này. Việc đặt các tệp thông thường trong thư mục này sẽ phá vỡ một số chức năng của systemctl, trong trường hợp này là khả năng che dấu .service của bạn và không có lý do gì để tin rằng các ứng dụng khác sẽ xử lý vấn đề này theo cách khác. Bây giờ, systemd có một bộ được xác định trước đường dẫn tìm kiếm đơn vị, hầu hết đều quan tâm đến phân bổ, điều này làm cho các vị trí mà bạn có thể đặt .service về cơ bản bị giới hạn ở (hoặc ít nhất là cho đến khi vấn đề này được giải quyết):
/usr/local/lib/systemd/system
Điều này hoạt động đặc biệt tốt và không làm mất chức năng:
# cp -a hello-world.service /usr/local/lib/systemd/system
'hello-world.service' -> '/usr/local/lib/systemd/system/hello-world.service'
# systemctl daemon-tải lại
# dpkg -i hello-world_1.0-1_all.deb
Chọn gói hello-world chưa được chọn trước đó.
(Đọc cơ sở dữ liệu ... 396452 tệp và thư mục hiện được cài đặt.)
Chuẩn bị giải nén hello-world_1.0-1_all.deb ...
Giải nén hello-world (1.0) ...
Đang thiết lập hello-world (1.0) ...
Đã tạo liên kết tượng trưng /etc/systemd/system/multi-user.target.wants/hello-world.service â /usr/local/lib/systemd/system/hello-world.service.
# mặt nạ systemctl xin chào thế giới
Đã tạo liên kết tượng trưng /etc/systemd/system/hello-world.service â /dev/null.
trình tự thời gian tương tự cũng áp dụng cho các lượt đăng ký, trong đó /vân vân
đảm nhận địa vị cao /chạy
lần lượt được ưu tiên hơn /lib
... và cứ thế, các lượt đăng ký có tên khác nhau sẽ được áp dụng theo thứ tự từ điển bất kể vị trí. Nếu bạn có các lệnh chồng chéo, thì lệnh cuối cùng sẽ được ưu tiên:
: systemctl mèo xin chào thế giới
# /lib/systemd/system/hello-world.service
[Đơn vị]
Mô tả=Xin chào thế giới (lib).
[Dịch vụ]
Loại=oneshot
ExecStart=/opt/bin/hello.sh lib
[Cài đặt]
WantedBy=multi-user.target
# /usr/local/lib/systemd/system/hello-world.service.d/10-local.conf
[Đơn vị]
Mô tả=Xin chào thế giới (cục bộ).
[Dịch vụ]
ExecStart=
ExecStart=/opt/bin/hello.sh cục bộ
# /etc/systemd/system/hello-world.service.d/override.conf
[Dịch vụ]
ExecStart=
ExecStart=/opt/bin/hello.sh, v.v.
: systemctl bắt đầu hello-world
ngày 28 tháng 6 15:20:24 betazoid systemd[1]: Bắt đầu Hello world (cục bộ)....
ngày 28 tháng 6 15:20:24 betazoid xin chào[402381]: xin chào, v.v.
ngày 28 tháng 6 15:20:24 betazoid systemd[1]: hello-world.service: Succeeded.
ngày 28 tháng 6 15:20:24 betazoid systemd[1]: Đã hoàn thành Xin chào thế giới (cục bộ)..