Je suis passé d'une installation 1.2.1 de nargx intégrée à partir de-src à la version 1.4.1 sur Ubuntu 13.04.
Installé via Ubuntu PPA, http://wiki.nginx.org/Install#Ubuntu_PPA . Tout cela a bien fonctionné.
Manuellement, je peux recharger/démarrer/arrêter le service en utilisant
Sudo service nginx <command>
Après le redémarrage du serveur, nginx ne monte pas seul.
Lors de ma précédente installation manuelle, j'avais un script Upstart écrit à la main dans/etc/init qui fonctionnait bien. L’installation de PPA a mis en place un script /etc/init.d/, je voudrais donc rester avec les méthodes de PPA plutôt que de pirater quelque chose.
C'est peut-être parce que je ne connais pas bien l'interface de service que quelque chose me manque.
J'ai également vérifié /var/log/nginx/access.log et error.log et je ne vois rien enregistré pendant le processus de démarrage.
Que dois-je faire pour résoudre ce problème?
Sudo update-rc.d nginx enable
a travaillé pour moi.
Je n'ai pas beaucoup d'expérience avec Ubuntu - mais avez-vous essayé de lancer chkconfig?
Tu peux essayer:
# Sudo update-rc.d nginx defaults
Ou:
# Sudo apt-get install chkconfig
# Sudo chkconfig nginx on
MISE À JOUR 28 mars 2016
J'ai soumis la petite amélioration au script Ubuntu Upstart, que j'ai proposée ci-dessous, sous forme de demande d'extraction au wiki NGinX. Ma demande d'extraction a été acceptée et le correctif a été fusionné .
Je suis sur Ubuntu 14.04 LTS et avait le même problème; NginX pourrait bien démarrer en utilisant Sudo service nginx restart
mais il ne démarre pas automatiquement au démarrage du serveur.
J'ai suivi les instructions de la page NGinX Ubuntu Upstart Wiki, mais cela n'a pas fonctionné (initialement). Alors j'ai creusé un peu. Tout d'abord, j'ai découvert qu'Ubuntu avait essayé de démarrer NGinX au démarrage, mais avait échoué:
$ Sudo cat /var/log/boot.log
...
* Starting nginx http daemon [fail]
...
Ensuite, j'ai trouvé le fichier journal des tâches upctart initctl:
$ cat /var/log/upstart/nginx.log
...
nginx: [emerg] Host not found in upstream "<mydomain>:443" in /etc/nginx/sites-enabled/mydomain:2
...
J'ai donc compris que le script de démarrage de NGinX avait été exécuté avant que l'interface réseau ne soit opérationnelle. Cette réponse d'erreur de serveur m'a donné les astuces dont j'avais besoin pour résoudre le script NginX Ubuntu Upstart. En résumé, un '!' était manquant, IFACE=lo
devait être remplacé par IFACE!=lo
. Pour plus de commodité, j'ai collé le script complet ci-dessous:
# 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
Après le redémarrage, j'ai vérifié si NGinX fonctionnait maintenant:
$ Sudo initctl list | grep nginx
nginx start/running, process 1551
Je vais informer l'auteur de ce script de mes découvertes.
En plus de la réponse Visionscaper, nginx installé à partir d’un dépôt de confiance standard utilise le fichier de service sysvinit, pas un par un. Ainsi, au lieu de service nginx pour upstart, éditez le service upcart rc-sysinit. C'est une bonne idée d'utiliser des substitutions par défaut pour cela:
# echo "start on (filesystem and net-device-up IFACE!=lo) or failsafe-boot" > /etc/init/rc-sysinit.override