Tài liệu về = - (bằng âm) trong các tệp đơn vị systemd


14

Trên hệ thống Archlinux của tôi, /usr/lib/systemd/system/mdmonitor.servicetệp chứa các dòng này:

[Service]
Environment=  MDADM_MONITOR_ARGS=--scan
EnvironmentFile=-/run/sysconfig/mdadm
ExecStartPre=-/usr/lib/systemd/scripts/mdadm_env.sh
ExecStart=/sbin/mdadm --monitor $MDADM_MONITOR_ARGS

Tôi nghi ngờ (được xác nhận bởi một số googling) rằng =-phương tiện dịch vụ sẽ không bị lỗi nếu không có các tệp được chỉ định. Tuy nhiên tôi không tìm thấy hành vi đó trong trang của các tệp đơn vị systemd. Tài liệu chính thức cho =-bài tập ở đâu?


1
Lưu ý rằng nó chỉ là một =phép gán thông thường , không phải là loại cú pháp gán tệp .INI thứ hai.
JdeBP

Câu trả lời:


19

Điều này được ghi lại trong systemd.exec:

EnvironmentFile=

[...]

Đối số được truyền phải là tên tệp tuyệt đối hoặc biểu thức ký tự đại diện, tùy chọn có tiền tố là " -", cho biết nếu tệp không tồn tại, nó sẽ không được đọc và không có thông báo lỗi hoặc cảnh báo nào được ghi lại.

Và trong systemd.service:

ExecStart=

Giáo dục

Đối với mỗi lệnh được chỉ định, đối số đầu tiên phải là một đường dẫn tuyệt đối đến một tệp thực thi. Tùy chọn, tên tệp này có thể được thêm tiền tố với một số ký tự đặc biệt:

Bảng 1. Các tiền tố thực thi đặc biệt

Giáo dục

ExecStartPre=, ExecStartPost=

Giáo dục

Nếu bất kỳ lệnh nào trong số đó (không có tiền tố -) không thành công, phần còn lại sẽ không được thực thi và đơn vị được coi là thất bại.

(Để tìm tài liệu đầy đủ nhất cho chỉ thị systemd, hãy tìm nó trong systemd.directives.)


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.