คุณสามารถค้นหาสิ่งที่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