本カテゴリーではubuntu16.04にapt-getを利用してインストールしたnginx 1.12.0を起動、停止、リロードなどのコマンドについて説明します。
インストール入門(Ubuntu)の最終頁まで実施している事を前提とします。
apt-getを利用してnginxをインストールした場合には、nginx本体(nginxのコマンド)は、/usr/sbin/nginxになります。
インストール直後にルートユーザ、管理者ユーザ、一般ユーザが、nginxコマンドを実行できた理由は何故でしょうか。
システム環境変数PATHの定義
$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
参考文献:https://help.ubuntu.com/community/EnvironmentVariables
ubuntuではシステム環境変数を/etc/enviromentファイルに定義しています。
このファイルに指定された環境変数は、システムを利用する全てのアカウントに適用されます。
enviromentファイルのPATHには、上記のように「/usr/sbin」が指定されています。
そのため、「nginx」コマンドはどのアカウント、カレントディレクトリでも実行ができます。
ただし、apt-getはsudoでroot権限でnginxをインストールしています。
nginxの各種ディレクトリは、root権限が付与されているので、一般ユーザアカウントで起動するとアクセス権限エラーが出力されます。
sudo apt-get でインストールしたnginxは sudo を利用して操作する必要があります。
インストール入門 サービス化において、 サービスの設定をした場合の操作方法は以下となります。
実行コマンド
$ sudo systemctl status nginx
サービス起動時
● nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since 金 2017-05-05 13:30:28 JST; 2min 4s ago
Process: 1009 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 964 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 1026 (nginx)
CGroup: /system.slice/nginx.service
tq1026 nginx: master process /usr/sbin/ngin
mq1027 nginx: worker proces
5月 05 13:30:27 yourServer systemd[1]: Starting The NGINX HTTP and reverse proxy server...
5月 05 13:30:28 yourServer nginx[964]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
5月 05 13:30:28 yourServer nginx[964]: nginx: configuration file /etc/nginx/nginx.conf test is successful
5月 05 13:30:28 yourServer systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument
5月 05 13:30:28 yourServer systemd[1]: Started The NGINX HTTP and reverse proxy server.
サービス停止時
● nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead) since 金 2017-05-05 13:33:38 JST; 2s ago
Process: 1477 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS)
Process: 1009 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 964 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 1026 (code=exited, status=0/SUCCESS)
5月 05 13:30:27 yourServer systemd[1]: Starting The NGINX HTTP and reverse proxy server...
5月 05 13:30:28 yourServer nginx[964]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
5月 05 13:30:28 yourServer nginx[964]: nginx: configuration file /etc/nginx/nginx.conf test is successful
5月 05 13:30:28 yourServer systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument
5月 05 13:30:28 yourServer systemd[1]: Started The NGINX HTTP and reverse proxy server.
5月 05 13:33:38 yourServer systemd[1]: Stopping The NGINX HTTP and reverse proxy server...
5月 05 13:33:38 yourServer systemd[1]: Stopped The NGINX HTTP and reverse proxy server.
起動時には「Acitve:」項目が 「active(running)」に、停止時には「inactive(dead)」になっています。
また、コンソールの最終行が起動時には、「Startd The NGINX HTTP」が出力され、
停止時には、最終行が「Stooped The NGINX Http」が出力されています。
実行コマンド
$ sudo systemctl start nginx
sudo systemctl status nginx で確実にサービスが開始した事を確認します。
実行コマンド
$ sudo systemctl stop nginx
sudo systemctl status nginx で確実にサービスが停止した事を確認します。