1 votes

Impossible de redémarrer nginx via systemd car il est déjà en cours d'exécution

J'essaie de redémarrer nginx, et systemd ne veut pas le faire.

Pour autant que je puisse en juger, nginx fonctionne parfaitement et répond aux requêtes comme prévu, mais systemd ne semble pas penser qu'il contrôle le service, alors je suppose qu'il essaie de démarrer une nouvelle copie, ce qui échoue parce qu'il essaie maintenant de se lier à :80 qui est déjà pris.

Après quelques recherches, j'ai abandonné et j'ai redémarré la machine, pensant que cela résoudrait le problème, mais à ma grande surprise, cela m'a ramené dans le même état.

Le seul moyen que j'ai trouvé pour rendre systemd heureux est le suivant

# killall nginx
# systemctl restart nginx.service

Mais je ne veux évidemment pas m'appuyer sur cela. Informations sur mon état actuel :

# systemctl restart nginx.service
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

# journalctl -xe
-- Unit nginx.service has begun starting up.
Oct 22 12:12:43 shared1 nginx[4772]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx[4772]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx[4772]: nginx: [emerg] still could not bind()
systemd[1]: nginx.service: Control process exited, code=exited status=1
systemd[1]: Failed to start A high performance web server and a reverse proxy server.
-- Subject: Unit nginx.service has failed

# netstat -lpn | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3607/nginx

# ps fax | grep nginx
4827 pts/0    S+     0:00                          \_ grep --color=auto nginx
3607 ?        Ss     0:00 nginx: master process /usr/sbin/nginx
3608 ?        S      0:00  \_ nginx: worker process
3609 ?        S      0:00  \_ nginx: cache manager process

# cat /etc/issue
Ubuntu 16.04.3 LTS \n \l

$ nginx -v
nginx version: nginx/1.10.3 (Ubuntu)

$ find /etc/systemd/ /lib/systemd/system -name nginx.service
/etc/systemd/system/multi-user.target.wants/nginx.service
/lib/systemd/system/nginx.service
$ stat /etc/systemd/system/multi-user.target.wants/nginx.service 2>&1 | head -n1
  File: '/etc/systemd/system/multi-user.target.wants/nginx.service' -> '/lib/systemd/system/nginx.service'
$ stat /lib/systemd/system/nginx.service 2>&1 | head -n2
  File: '/lib/systemd/system/nginx.service'
  Size: 986             Blocks: 8          IO Block: 4096   regular file

1voto

Jasvender singh Points 11
sudo killall apache2

Pour résoudre le problème de l'emploi pour nginx.service a échoué parce que le processus de contrôle s'est arrêté avec le code d'erreur. Voir systemctl status nginx.service y journalctl -xe pour plus de détails.

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