4 votes

Comment empêcher le démarrage automatique de nginx à l'installation ?

J'essaie d'installer Nginx sur Ubuntu 16.04 via la commande suivante : sudo apt-get install nginx

Mais j'obtiens l'erreur suivante :

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
invoke-rc.d: initscript nginx, action "start" failed.
 nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-11 16:41:31 UTC; 6ms ago
  Process: 17851 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
 Main PID: 31524 (code=exited, status=0/SUCCESS)

Jul 11 16:41:31 vm systemd[1]: Starting A high performance web server and a reverse proxy s...r...
Jul 11 16:41:31 vm nginx[17851]: nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: N...ory)
Jul 11 16:41:31 vm nginx[17851]: nginx: configuration file /etc/nginx/nginx.conf test failed
Jul 11 16:41:31 vm systemd[1]: nginx.service: Control process exited, code=exited status=1
Jul 11 16:41:31 vm systemd[1]: Failed to start A high performance web server and a reverse ...ver.
Jul 11 16:41:31 vm systemd[1]: nginx.service: Unit entered failed state.
Jul 11 16:41:31 vm systemd[1]: nginx.service: Failed with result 'exit-code'.
Hint: Some lines were ellipsized, use -l to show in full.
dpkg: error processing package nginx-core (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of nginx:
 nginx depends on nginx-core (>= 1.10.3-0ubuntu0.16.04.1) | nginx-full (>= 1.10.3-0ubuntu0.16.04.1) | nginx-light (>= 1.10.3-0ubuntu0.16.04.1) | nginx-extras (>= 1.10.3-0ubuntu0.16.04.1); however:
  Package nginx-core is not configured yet.
  Package nginx-full is not installed.
  Package nginx-light is not installed.
  Package nginx-extras is not installed.
 nginx depends on nginx-core (<< 1.10.3-0ubuntu0.16.04.1.1~) | nginx-full (<< 1.10.3-0ubuntu0.16.04.1.1~) | nginx-light (<< 1.10.3-0ubuntu0.16.04.1.1~) | nginx-extras (<< 1.10.3-0ubuntu0.16.04.1.1~); however:
  Package nginx-core is not configured yet.
  Package nginx-full is not installed.
  Package nginx-light is not installed.
  Package nginx-extras is not installed.

dpkg: error processing package nginx (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
  Errors were encountered while processing:
 nginx-core
 nginx

Je pense qu'il essaie de démarrer nginx automatiquement par défaut après l'installation, mais ne trouve pas les fichiers de configuration de nginx. Comment puis-je l'empêcher de démarrer automatiquement juste après l'installation, de sorte que mes fichiers de configuration de nginx ne puissent pas être trouvés ? apt-get install n'échoue pas.

0 votes

Il y a un problème avec les dépendances. Votre nginx n'est pas lancé.

4voto

dsegleau Points 1460

Dans les distributions basées sur Debian, le défaut malheureux pour les services à l'installation est de démarrer et d'activer. Cela provoque généralement des erreurs effrayantes lors de l'installation de services qui ne contiennent pas de configuration par défaut de bout en bout, ainsi qu'un tas d'informations inutiles lors de l'utilisation de produits de CM qui lisent directement un tel flux de sortie, comme Ansible.

Vous pouvez modifier ce paquetage par défaut, mais cela nécessitera de repackager l'application (dans ce cas nginx) soit sur la machine localement, soit via un service de miroir tel que Foreman ou Satellite.

Je résous personnellement ce problème en utilisant CentOS chaque fois que je le peux, qui a une valeur par défaut raisonnable de "arrêté et désactivé". Mais ce n'est pas une solution très universelle.

Suivez les étapes suivantes pour repackager le paquet deb :

1 : Extraire le paquet deb

`# dpkg-deb -x <package.deb> <dir>`

2 : Extraire les informations de contrôle d'un paquet

`# dpkg-deb -e <package.deb> <dir/DEBIAN>`
  1. Une fois les changements de paquets terminés, ré-empaqueter le paquet deb

# dpkg-deb -b <dir> <new-package.deb>

  1. Vous pouvez soit installer ce deb localement, soit l'ajouter à un service miroir (si vous en avez un).

Sinon, voici une méthode intelligente pour contourner ce problème, que je reprends sans vergogne major.io . Il agit comme un interrupteur que vous pouvez activer et désactiver pour empêcher les nouveaux paquets de démarrer leurs services. Gardez à l'esprit que cela ne "désactive" PAS ces services, et qu'un redémarrage les fera démarrer à moins que vous ne les ayez explicitement désactivés au préalable :

Si vous souhaitez empêcher les démons de démarrer après l'installation d'un paquet, il suffit d'ajouter quelques lignes dans /usr/sbin/policy-rc.d :

cat > /usr/sbin/policy-rc.d < < EOF
#!/bin/sh
echo "All runlevel operations denied by policy" >&2
exit 101
EOF

Maintenant, installez tous les paquets dont vous avez besoin et les démons resteront arrêtés jusqu'à ce que vous les démarriez (ou redémarriez le serveur). Assurez-vous de supprimer le fichier de stratégie que vous avez ajouté une fois que vous avez fini d'installer vos paquets.

Si vous l'utilisez avec quelque chose comme Ansible, il sera facile de l'activer et de le désactiver avant et après l'exécution. Cela mettra également fin au problème de l'affreux jet d'erreur lors de l'installation de paquets Debian.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X