apt-getでインストールしたnginxサーバの再起動時にnginxが再起動するように設定します。
apt-getのnginx用レポジトリの作成
$ cd /lib/systemd/system
$ sudo touch nginx.service
$ sudo vi nginx.service
viの挿入モードに切り替えるためiを押下します。
nginx本家サイト NGINX systemd service fileより
nginx.serviceファイルの内容
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
コピー&ペーストで上記内容をnginx.serviceファイル記述します。:wqでセーブします。
サービスの起動
$ sudo systemctl start nginx
Failed to start nginx.service: Unit nginx.service is masked.
必ず失敗する。
サービスの確認
$ sudo systemctl status nginx
●nginx.service
Loaded(/dev/null)
Active:inacitve(dead) since 日付
サービスを起動に失敗している
unmask後にstart
$ sudo systemctl unmask nginx
$ sudo systemctl start nginx
status確認
$ sudo systemctl status nginx
inx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead) since 木 2017-04-27 05:39:18 JST; 4min 38s ago
Process: 1549 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCE
Process: 989 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 933 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 992 (code=exited, status=0/SUCCESS)
4月 27 05:11:19 ubuntuのホスト名 systemd[1]: Starting The NGINX HTTP and reve
4月 27 05:11:20 ubuntuのホスト名 nginx[933]: nginx: the configuration file /
:
:以下割愛
1行目の先に設定したnginx.serviceのファイルがロードしてサービスがenabled状態になっています
サーバ再起動
$ sudo shutdown -r now
2017年4月26時点のUbuntu16.04 nginx1.12.0 のバージョン,nginx本家サイト NGINX systemd service file をベースに構成しています。他のディストリビューションの方は対応するnginxサイトの頁を確認して下さい。