Tôi có thể chỉnh sửa an toàn tệp đơn vị Nginx Systemd (/lib/systemd/system/nginx.service) được cung cấp bởi gói nginx không?


0

Tôi đã cài đặt Nginx với apt install nginxmáy chủ Debian 9.2. Nó hoạt động tốt, nhưng nhìn vào tạp chí Systemd với journalctl -u nginx, tôi nhận được sự vui nhộn:

Bắt đầu Một máy chủ web hiệu suất cao và máy chủ proxy ngược.

Hóa ra Systemd sử dụng lại trường "Mô tả" trong phần "[Đơn vị]" của tệp đơn vị và chắc chắn rằng /lib/systemd/system/nginx.servicenó nói:

Mô tả = Máy chủ web hiệu suất cao và máy chủ proxy ngược

Đây có phải là một trò đùa của những người bảo trì Debian Nginx hoặc người khác không? Ngay cả tài liệu Systemd tại https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Description= nói:

Ví dụ xấu là "máy chủ HTTP trọng lượng nhẹ hiệu năng cao" (quá chung chung)

Vì vậy, tôi đang suy nghĩ để chỉnh sửa trường "Mô tả" để cung cấp cho nó nhiều giá trị mô tả hơn, nhưng tôi không chắc nó sẽ hoạt động như thế nào khi tôi sẽ cập nhật gói nginx như một phần của cập nhật hoặc nâng cấp hệ thống - tôi sẽ được cảnh báo của một cuộc xung đột nếu phiên bản khác của nginx.servicecố gắng được cài đặt? Tôi biết đây là trường hợp với các tệp cấu hình gói, điều này cũng áp dụng cho các loại tệp khác từ gói?

Câu trả lời:


1

Như một quy tắc sơ bộ, mọi thứ trong /usrhoặc /libnên được xem là chỉ đọc và đặc biệt là mọi thứ được cài đặt bởi một gói. (Có những trường hợp ngoại lệ đáng tiếc hiếm gặp.) Trừ khi một tệp được đánh dấu đặc biệt trong gói, các bản nâng cấp sẽ chỉ ghi đè lên nó.

Cách thay đổi các tệp systemd được đề xuất là sao chép chúng vào /etc. Ví dụ: tệp đơn vị /etc/systemd/system/nginx.servicesẽ ghi đè lên một trong / usr / lib. (Nó thậm chí sẽ ghi đè lên các đơn vị dịch vụ init.d được tạo tự động.) Sử dụng công cụ systemd-deltađể xem các khác biệt của tất cả các đơn vị bị ghi đè.

Chà, tôi nói "được khuyến nghị" bởi vì nó cũng hoạt động với những thứ như quy tắc udev và như vậy ... Nhưng một phương pháp thậm chí tốt hơn là ghi đè chỉ các phần của một đơn vị bằng cách sử dụng tệp "thả xuống" /etc/systemd/system/nginx.service.d/foobar.conf- phần này chỉ cần hai dòng, phần tên [Unit]Description=cài đặt mới của bạn ; phần còn lại sẽ được kế thừa từ / usr / lib.

Trong cả hai trường hợp, bạn có thể sử dụng systemctl edit [--full]để chỉ mở một trình soạn thảo và thực hiện các thay đổi của mình.

Cuối cùng, tùy chọn Debian chung là báo cho hệ thống đóng gói (dpkg) để tránh cập nhật một tệp cụ thể, bất kể nó nằm ở đâu. Bạn có thể "chuyển hướng" tập tin thực sự ở nơi khác bằng cách sử dụng dpkg-divert. Các bản phân phối khác có các tính năng tương tự, ví dụ sử dụng pacman của Arch NoExtract=NoUpgrade=.

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.