Tôi đang tạo một gói cấu hình và muốn dừng và khởi động lại các dịch vụ có cấu hình bị ảnh hưởng. Ngay bây giờ tôi đang sử dụng service [stop|restart]
trong {pre,post}{inst,rm}
cách. Tôi đọc trong một câu hỏi ở đâu đó invoke-rc.d
là cách đúng đắn , bởi vì nó tôn vinh sở thích của người dùng về một dịch vụ. Tuy nhiên, tôi không thể tìm thấy bất kỳ hướng dẫn về điều này. Có ai biết hướng dẫn như vậy? Hoặc có lời khuyên nào về cách tôi nên chọn? Gói này được sử dụng nội bộ và có thể sẽ chỉ dành cho 14.04 trong hai năm tới. Tuy nhiên, tôi muốn để lại trạng thái sạch nhất có thể cho người kế vị của tôi, vì vậy systemd
tôi cũng nghĩ vậy.
Từ invoke-rc.d
trang người đàn ông :
Tất cả quyền truy cập vào tập lệnh init của tập lệnh duy trì của gói Debian nên được thực hiện thông qua invoke-rc.d .
Từ Hướng dẫn chính sách Debian, Chương 9, Mục 3.3 :
Các nhà bảo trì nên sử dụng lớp trừu tượng được cung cấp bởi các chương trình update-rc.d và invoke-rc.d để đối phó với các bản inits trong các tập lệnh của gói như postinst, prerm và postrm.
...
Các tập lệnh bảo trì gói phải sử dụng invoke-rc.d để gọi /etc/init.d/* initscripts, thay vì gọi chúng trực tiếp.
Debian đã và đang sử dụng sysv-init
và sẽ chuyển trực tiếp sang systemd
và tôi cho rằng hướng dẫn chính sách sẽ được cập nhật trong thời gian tới để tham khảo systemctl
. Tuy nhiên, điều tôi không chắc chắn là đây: Tôi có nên sử dụng invoke-rc.d
thay vì service
? Tôi có thể nói dpkg
rằng tôi quan tâm đến một số tệp (thông qua trình kích hoạt), vậy có cách nào để nói dpkg
rằng tôi cũng quan tâm đến một số dịch vụ và có dpkg
thể thực hiện khởi động lại / tải lại không?
Để làm rõ: Tôi không viết init script. Tôi đang cung cấp một gói với cấu hình cho các ứng dụng khác, như Puppet, NTP, v.v., vì vậy tôi dừng và khởi động lại các dịch vụ tương ứng trong các tập lệnh.
Ở đây , ví dụ, là một vấn đề Docker về invoke-rc.d
vs service
. Vấn đề vẫn còn bỏ ngỏ, với một người, có lẽ là một người bảo trì, nhận xét rằng họ chắc chắn quan tâm đến việc này đúng cách - rõ ràng không ai trong chúng ta chắc chắn đó là gì. (Câu hỏi của tôi là độc lập với vấn đề đó.)
invoke-rc.d
trang man và các tài liệu chính sách Debian cho chúng ta biết sử dụng nó trong mối liên hệ với/etc/init.d/
các kịch bản (có thể vì họ vẫn sử dụng sysv-init). Làm thế nào để thay đổi với Upstart hoặc systemd?