Built-from-src nginx 1.2.6インストールからUbuntu 13.04の1.4.1に移動しました。
Ubuntu PPA経由でインストール http://wiki.nginx.org/Install#Ubuntu_PPA 。これはすべてうまくいきました。
手動で、サービスをリロード/開始/停止して
Sudo service nginx <command>
サーバーの再起動後、nginxが単独で起動しません。
以前の手動のインストールでは、/ etc/initに手書きのUpstartスクリプトがあり、問題なく動作しました。 PPAのインストールでは/etc/init.d/スクリプトが設定されているので、何かをハッキングするのではなく、PPAメソッドを使い続けたいと思います。
サービスインターフェースに詳しくないので、足りないものがあるのかもしれません。
/var/log/nginx/access.logとerror.logも確認しましたが、起動プロセス中に何も記録されていません。
これを修正するにはどうすればよいですか?
Sudo update-rc.d nginx enable
は私のために働きました。
Ubuntuの経験はあまりありませんが、chkconfigを実行してみましたか?
あなたが試すことができます:
# Sudo update-rc.d nginx defaults
または:
# Sudo apt-get install chkconfig
# Sudo chkconfig nginx on
UPDATE 2016年3月28日
NGinX wikiへのプルリクエストとして、以下に提案するUbuntu Upstartスクリプトの小さな改善を提出しました。 私のプルリクエストが受け入れられ、パッチがマージされました 。
私はUbuntu 14.04 LTSを使用していて、同じ問題がありました。 NginXはSudo service nginx restart
を使用して問題なく起動できましたが、サーバーの起動時に自動的に起動しませんでした。
NGinX buntu Upstart Wikiページの指示に従いましたが、うまくいきませんでした(最初は)。それで、少し掘り下げました。まず、Ubuntuが起動時にNGinXを起動しようとしたが失敗したことがわかりました。
$ Sudo cat /var/log/boot.log
...
* Starting nginx http daemon [fail]
...
次に、initctl upstartジョブのログファイルを見つけました。
$ cat /var/log/upstart/nginx.log
...
nginx: [emerg] Host not found in upstream "<mydomain>:443" in /etc/nginx/sites-enabled/mydomain:2
...
そのため、NGinX起動スクリプトがネットワークインターフェイスが起動する前に実行されていたことがわかりました。 このサーバー障害の回答 は、NginX Ubuntu Upstartスクリプトを修正するために必要なヒントを教えてくれました。要約すると、「!」がないため、IFACE=lo
をIFACE!=lo
に変更する必要がありました。便宜上、以下の完全なスクリプトを貼り付けました。
# nginx
description "nginx http daemon"
author "George Shammas <[email protected]>"
start on (filesystem and net-device-up IFACE!=lo)
stop on runlevel [!2345]
env DAEMON=/usr/sbin/nginx
env PID=/var/run/nginx.pid
expect fork
respawn
respawn limit 10 5
#oom never
pre-start script
$DAEMON -t
if [ $? -ne 0 ]
then exit $?
fi
end script
exec $DAEMON
再起動後、NGinXが現在実行されているかどうかを確認しました。
$ Sudo initctl list | grep nginx
nginx start/running, process 1551
私の調査結果について、このスクリプトの作成者に通知します。
私にとっては、Sudo apt-get update --fix-missing
インストール前Sudo apt-get install nginx
アーキテクチャ:armv7l
OS:raspLITE
Visionscaperの回答に加えて、標準の信頼できるリポジトリからインストールされたnginxは、upstartではなくsysvinitサービスファイルを使用します。したがって、upginのnginxサービスの代わりにrc-sysinit upstartサービスを編集します。これには、アップスタートオーバーライドを使用することをお勧めします。
# echo "start on (filesystem and net-device-up IFACE!=lo) or failsafe-boot" > /etc/init/rc-sysinit.override