Nginx error invalid pid number
Я выдал nginx -s stop, и после этого я получил эту ошибку при попытке перезагрузить его.
[error]: invalid PID number “” in “/var/run/nginx.pid”
Этот файл /var/run/nginx / pid является пустым atm.
Что мне нужно сделать, чтобы это исправить?
Ответы
перезагрузка nginx -s используется только для указания запущенному процессу nginx перезагрузить свою конфигурацию. После остановки у вас нет запущенного процесса nginx, которому можно отправить сигнал. Просто запустите nginx (возможно, с помощью a -c /path /to /config /file)
в моем случае я решил это, запустив службу.
запуск sudo /etc/init.d/nginx
Приведенная выше команда запустит службу в Debian / Ubuntu. При возникновении какой-либо проблемы (например, Apache прослушивает через тот же порт) будет выдана ошибка
После этого перезагрузка nginx -s будет работать как по маслу
Это устранит проблему в Ubuntu 16.04 и выше
sudo service nginx stop
возможно, потребуется удалить файл pid, nginx.pid местоположение которого может быть определено в файле /etc/nginx/nginx.conf, найдите строку типа
cat /etc/nginx/nginx.conf | grep pid # see if pid file is defined
эта строка может находиться в файле /etc/nginx/nginx.conf
pid /run/nginx.pid; # in file /etc/nginx/nginx.conf
если файл pid действительно существует, удалите его сейчас
ls -la /var/run/nginx/pid # this file may live elsewhere
ls -la /run/nginx.pid # on Ubuntu 16.04+
после удаления pid-файла запустим nginx
sudo service nginx start
ps -eaf|grep nginx # confirm its running
sudo nginx -t && sudo nginx -s reload # confirm config is OK
# typical output
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful
sudo service nginx stop # issue stop
ps -eaf|grep nginx # confirm it actually stopped
теперь работоспособность восстановлена, и вы можете запускать по своему усмотрению
Три способа устранения ошибок Nginx: Nginx: [ошибка] недопустимый номер Pid “” в “/run / nginx.pid”.
Во-первых, описание проблемы
правильно nginx реализует reload ошибку времени выполнения команды:
[MyHome@MyMachine ~]$ sudo nginx -s reload
nginx: [error] invalid PID number “” in “/run/nginx.pid”
Во-вторых, решение
2.1. Способ 1:
Перезагрузитепрофильnginx.conf, затем выполнитеreload
[MyHome@MyMachine ~]$ # nginx.conf may not be in / etc / nginx / under, depending on the NGINX installation path
[MyHome@MyMachine ~]$ sudo nginx -c /etc/nginx/nginx.conf
[MyHome@MyMachine ~]$ sudo nginx -s reload
2.2. Способ 2:
Прямая записьPID основного процессаnginx”/run/nginx.pid”
[MyHome@MyMachine ~]$ # The following command gets the PID: 19386 of the NGINX main process: 19386
[MyHome@MyMachine ~]$ ps -aux | grep “nginx: master process”
root 19386 0.0 0.0 70060 7308 ? Ss 15:36 0:00 nginx: master process nginx
myname 20740 0.0 0.0 116800 1048 pts/0 S+ 23:31 0:00 grep –color=auto nginx: master process
[MyHome@MyMachine ~]$ sudo echo 19386 > /run/nginx.pid
[MyHome@MyMachine ~]$ sudo nginx -s reload
2.3. Способ 3:
Завершитеnginx основной процесс, затемперезапустите nginx
[MyHome@MyMachine ~]$ sudo killall nginx
[MyHome@MyMachine ~]$ sudo nginx