2026/07/01(水)nginxをinit.dからsystemdに移行してみた

Ubuntu 26からinit.dが非推奨になるが、systemdが見つからなかったので試しに書いてみた。

確認環境

  • Ubuntu 24.04.4 LTS
  • nginx/1.24.0

手順

sudo mv /etc/init.d/nginx ~
sudo service stop nginx
cat <<'EOF' | sudo tee /etc/systemd/system/nginx.service
[Unit]
Description=nginx
Documentation=man:nginx(8)
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=simple
ExecStartPre=/usr/sbin/nginx -t -q
ExecStart=/usr/sbin/nginx -g 'daemon off; master_process on;'
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -QUIT $MAINPID
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable nginx
sudo systemctl start nginx

参考記事

あとがき

nginxはマスタプロセスが上がったままなのでtype=simpleで問題なさそうだったが、正直よく分かってないので、何か問題が出たらまたその時に対処したい。

init.dにはまだ沢山転がってるので徐々に移行させていかないと…。