Ви можете дізнатися, що 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
сценарії - це застарілі / застарілі способи зробити те саме. Хоча вони можуть працювати, вони більше не підтримуються і не рекомендуються в системній системі.
service
абоinit.d
, як-отsudo service nginx reload