Bạn có thể tìm hiểu những gì systemd reload nginxsẽ làm bằng cách xem ExecReload=tùy chọn trong [Service]phần trong nginx.servicetệp đơn vị (nằm ở /usr/lib/systemd/system/nginx.servicetrên hệ thống của tôi):
$ systemctl cat nginx | grep ExecReload=
Hoặc bằng cách chạy:
$ systemctl show nginx.service --property=ExecReload
Trên hệ thống của tôi, tôi nhận được:
ExecReload=/usr/bin/kill -HUP $MAINPID
Từ nginx(8):
-s signal Send a signal to the master process. The argument signal
can be one of: stop, quit, reopen, reload. The following
table shows the corresponding system signals:
stop SIGTERM
quit SIGQUIT
reopen SIGUSR1
reload SIGHUP
Như vậy systemctl reload nginxvà nginx -s reloadsẽ, gần như , làm điều tương tự.
Sự khác biệt là:
systemctl reload nginx sẽ thực thi lệnh trong môi trường sạch (và không phải môi trường người dùng hiện tại);
systemctl reloadhoạt động cho bất kỳ dịch vụ nào cho phép nó (có cấu hình trong tệp đơn vị). Không cần phải nhớ các lệnh cụ thể của dịch vụ. Điều này thậm chí còn thú vị hơn nếu bạn có một vài trường hợp của một dịch vụ.
Sử dụng servicehoặc init.dcác tập lệnh là những cách kế thừa / không dùng nữa để làm điều tương tự. Mặc dù chúng có thể hoạt động, nhưng chúng không được hỗ trợ cũng như không được đề xuất nữa trên hệ thống dựa trên systemd.
servicehoặcinit.d, nhưsudo service nginx reload