回答:
ユニットファイル(私のシステムにある)のセクションにあるオプションを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
or init.d
スクリプトを使用することは、同じことを行うレガシー/非推奨の方法です。それらは機能するかもしれませんが、systemdベースのシステムではサポートも推奨もされません。
現在、Centos 7とRHEL 7には違いがあります。systemctlreload 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