summaryrefslogtreecommitdiff
path: root/roles/linux_ns/files/systemd/dn42_nginx.service
diff options
context:
space:
mode:
authoruvok cheetah2025-02-09 17:57:14 +0100
committeruvok cheetah2025-02-09 17:57:14 +0100
commita3ee42d1dde090c5baad512ff8707f7e2c068433 (patch)
treea619ef2f51c548a235b188cac19c7cf337686424 /roles/linux_ns/files/systemd/dn42_nginx.service
parentbb989a2148686d1eb4f49b5aa2597c5162436196 (diff)
LintingHEADmaster
Diffstat (limited to 'roles/linux_ns/files/systemd/dn42_nginx.service')
-rw-r--r--roles/linux_ns/files/systemd/dn42_nginx.service37
1 files changed, 37 insertions, 0 deletions
diff --git a/roles/linux_ns/files/systemd/dn42_nginx.service b/roles/linux_ns/files/systemd/dn42_nginx.service
new file mode 100644
index 0000000..43d8a67
--- /dev/null
+++ b/roles/linux_ns/files/systemd/dn42_nginx.service
@@ -0,0 +1,37 @@
+# Stop dance for nginx
+# =======================
+#
+# ExecStop sends SIGQUIT (graceful stop) to the nginx process.
+# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
+# and sends SIGTERM (fast shutdown) to the main process.
+# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
+# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
+#
+# nginx signals reference doc:
+# http://nginx.org/en/docs/control.html
+#
+[Unit]
+Description=A high performance web server and a reverse proxy server
+Documentation=man:nginx(8)
+After=network-online.target remote-fs.target nss-lookup.target
+Wants=network-online.target
+After=dn42_namespace.service
+Requires=dn42_namespace.service
+
+[Service]
+Type=forking
+PIDFile=/run/dn42_nginx.pid
+ExecStartPre=/usr/sbin/nginx -t -q -c /etc/nginx/dn42/nginx.conf -g 'daemon on; master_process on;'
+ExecStart=/usr/sbin/nginx -c /etc/nginx/dn42/nginx.conf -g 'daemon on; master_process on;'
+ExecReload=/usr/sbin/nginx -c /etc/nginx/dn42/nginx.conf -g 'daemon on; master_process on;' -s reload
+ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/dn42_nginx.pid
+TimeoutStopSec=5
+KillMode=mixed
+NetworkNamespacePath=/run/netns/dn42
+BindReadOnlyPaths=/etc/netns/dn42/resolv.conf:/etc/resolv.conf
+PrivateTmp=true
+PrivateDevices=true
+PrivateIPC=true
+
+[Install]
+WantedBy=multi-user.target