답변:
장치 파일 의 섹션 ( 내 시스템에 있음) 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
스크립트는 레거시 / 더 이상 사용되지 않는 동일한 방법으로 수행됩니다. 작동 할 수도 있지만 시스템 기반 시스템에서는 더 이상 지원되거나 권장되지 않습니다.
현재 Centos 7과 RHEL 7에는 차이가 있습니다. systemctl reload nginx를 사용하면 구성을 검증하지 않습니다.
다음 버그를 참조하십시오 : https://bugzilla.redhat.com/show_bug.cgi?id=1565377
따라서 nginx -s reload를 사용하거나 nginx 단위 파일을 업데이트하여 다음 reload 명령을 사용하는 것이 좋습니다.
ExecReload=/usr/sbin/nginx -s reload
https://bugzilla.redhat.com/attachment.cgi?id=1419614&action=diff
service
나init.d
처럼sudo service nginx reload