khởi động lại hoặc hệ thống dactl daemon-tải lại để thay đổi /etc/systemd/system.conf?


10

Trong CentOS-7, một sự thay đổi trong các tùy chọn trong /etc/systemd/system.conf của systemd yêu cầu khởi động lại hoặc sẽ "systemctl daemon-reload" đủ?

Câu trả lời:


15

Không, daemon-reload sẽ tải lại tất cả các tệp đơn vị, không phải cấu hình cho chính systemd. Tuy nhiên, # systemctl daemon-reexecsẽ thực thi lại systemd và khiến nó tiêu hóa cấu hình mới của nó trong tiến trình.

Từ trang man systemctl:

daemon-reexec
       Reexecute the systemd manager. This will serialize the manager
       state, reexecute the process and deserialize the state again. This
       command is of little use except for debugging and package upgrades.
       Sometimes, it might be helpful as a heavy-weight daemon-reload.
       While the daemon is being reexecuted, all sockets systemd listening
       on behalf of user configuration will stay accessible.

Khi trang man nói daemon-reexec rất hữu ích cho việc nâng cấp gói, phần lớn có nghĩa là lệnh này thực thi bất kỳ nhị phân mới nào có và xử lý lại cấu hình của nó. TUY NHIÊN, RPM mà chúng tôi sử dụng để nâng cấp systemd đã chứa tập lệnh để thực hiện việc này, vì vậy nó thường không bao giờ cần thiết trong trường hợp nâng cấp bình thường.

Hoặc bạn có thể khởi động lại. Một trong hai sẽ làm.


3
Lưu ý rằng gói RPM systemd bao gồm một scriptlet sẽ có daemon-reexec khi gói được nâng cấp, vì vậy bạn không cần phải thực hiện thủ công trong tình huống đó.
Michael Hampton

1
Điều duy nhất thực sự cần khởi động lại nữa là kernel. Hầu hết nếu không phải tất cả các dịch vụ đều tự khởi động lại (nếu chúng đã chạy) từ trong các tập lệnh RPM trong quá trình nâng cấp bằng cách sử dụng systemctl try-restart.
Michael Hampton

2
@MichaelHampton thực sự khó khăn hơn một chút: không chỉ kernel, mà cả libc (và đôi khi, cả người dùng thiết bị ánh xạ thiết bị cũng) yêu cầu khởi động lại đầy đủ. Chắc chắn, bạn có thể xác định chính xác và khởi động lại từng dịch vụ bị ảnh hưởng, nhưng về cơ bản tất cả các dịch vụ đều được liên kết với libc, nói chung, nhanh hơn để khởi động lại ...
shodanshok

1
@Motivated libckhông phải là một dịch vụ, thay vào đó là Thư viện GNU C, được liên kết bởi hầu hết tất cả các tệp thực thi của linux. Vì vậy, sau khi libcnâng cấp, bạn nên khởi động lại bất kỳ chương trình / quy trình đang chạy nào; phương pháp dễ dàng hơn là khởi động lại máy.
shodanshok

1
@Motivated Câu trả lời là nói về các tập lệnh trong các gói RPM, được sử dụng bởi các bản phân phối có nguồn gốc Red Hat, nhưng không phải bởi các bản phân phối có nguồn gốc Debian. Chúng sử dụng các phương thức đóng gói khác nhau, nhưng cũng gọi systemctl để khởi động lại dịch vụ hoặc chính systemd.
Michael Hampton
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.