คุณสามารถค้นหาสิ่งที่systemd reload nginxจะทำโดยดูที่ExecReload=ตัวเลือกใน[Service]ส่วนของnginx.serviceไฟล์หน่วย (อยู่ที่/usr/lib/systemd/system/nginx.serviceระบบของฉัน):
$ systemctl cat nginx | grep ExecReload=
หรือโดยการเรียกใช้:
$ systemctl show nginx.service --property=ExecReload
ในระบบของฉันฉันจะได้รับ:
ExecReload=/usr/bin/kill -HUP $MAINPID
จาก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
ดังนั้นsystemctl reload nginxและnginx -s reloadจะเกือบจะทำในสิ่งเดียวกัน
ความแตกต่างคือ:
systemctl reload nginx จะดำเนินการคำสั่งในสภาพแวดล้อมที่สะอาด (และไม่ใช่สภาพแวดล้อมผู้ใช้ปัจจุบัน)
systemctl reloadใช้งานได้กับบริการใด ๆ ที่อนุญาต (ซึ่งมีการกำหนดค่าไว้ในไฟล์หน่วย) ไม่จำเป็นต้องจำคำสั่งเฉพาะบริการ สิ่งนี้น่าสนใจยิ่งขึ้นหากคุณมีบริการหลายกรณี
การใช้serviceหรือinit.dสคริปต์เป็นวิธีดั้งเดิม / เลิกใช้ในการทำสิ่งเดียวกัน แม้ว่ามันอาจจะทำงานได้ แต่ก็ไม่ได้รับการสนับสนุนและไม่แนะนำอีกต่อไปบนระบบที่ใช้ systemd
serviceหรือinit.dชอบsudo service nginx reload