Linuxでnginxを起動時に自動起動するよう設定する方法は何ですか?
LinuxシステムでNginxをブート時に自動起動する方法は以下の手順です。1. Nginxのメイン設定ファイルを開きます。ほとんどのLinuxディストリビューションでは、Nginxのメイン設定ファイルは/etc/nginx/nginx.confにあります。テキストエディタ(例えばviやnano)を使用してこのファイルを開いてください。2. 次の行を検索して編集します。
user www-data;
worker_processes auto;
適切な権限を持つユーザー(例:root)に変更し、Nginxが起動時に管理者権限で実行できるようにする。ファイルを保存して閉じる。3. システムのInitシステムを確認する。現在、2つの主要なInitシステムがあります:SysVとSystemd。以下のコマンドを実行して、そのシステムが使用しているInitシステムを確認してください:
ps --no-headers -o comm 1
initが出力された場合、システムはSysV Initシステムを使用します。systemdが出力された場合、システムはSystemd Initシステムを使用します。異なるInitシステムに対して、以下の手順を実行します。a. SysV Initシステムの場合:起動スクリプトファイル「/etc/init.d/nginx」を作成し、テキストエディタでファイルを開きます。次の内容をファイルにコピーしてください。
#! /bin/sh
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/nginx
NAME=nginx
DESC=nginx
test -x $DAEMON || exit 0
set -e
. /lib/init/vars.sh
. /lib/lsb/init-functions
case “$1” in
start)
echo -n “Starting $DESC: ”
start-stop-daemon –start –quiet –pidfile /var/run/$NAME.pid \
–exec $DAEMON — $DAEMON_OPTS || true
echo “$NAME.”
;;
stop)
echo -n “Stopping $DESC: ”
start-stop-daemon –stop –quiet –pidfile /var/run/$NAME.pid \
–exec $DAEMON || true
echo “$NAME.”
;;
restart|force-reload)
echo -n “Restarting $DESC: ”
start-stop-daemon –stop –quiet –pidfile \
/var/run/$NAME.pid –exec $DAEMON || true
sleep 1
start-stop-daemon –start –quiet –pidfile \
/var/run/$NAME.pid –exec $DAEMON — $DAEMON_OPTS || true
echo “$NAME.”
;;
reload)
echo -n “Reloading $DESC configuration: ”
start-stop-daemon –stop –signal HUP –quiet –pidfile \
/var/run/$NAME.pid –exec $DAEMON || true
echo “$NAME.”
;;
*)
N=/etc/init.d/$NAME
echo “Usage: $N {start|stop|restart|reload|force-reload}” >&2
exit 1
;;
esac
exit 0
ファイルを保存して閉じます。スクリプトファイルの実行許可を設定します。
sudo chmod +x /etc/init.d/nginx
システムの起動時にNginxを追加します。
sudo update-rc.d nginx defaults
Systemd Initシステムに関しては、Nginxのサービスファイル`/etc/systemd/system/nginx.service`を作成し、テキストエディタでファイルを開いてください。以下の内容をファイルにコピーしてください。
[Unit]
Description=Nginx
After=network.target
[Service]
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
ファイルを保存して閉じてください。systemdの設定ファイルを再読み込みしてください。
sudo systemctl daemon-reload
システムにNginxを追加します。