macos - mac - Cómo reiniciar nginx en OS X
restart nginx mac (12)
¿Cuál es su ubicación de archivo pid nginx? Esto se especifica en el archivo de configuración, rutas predeterminadas especificadas en tiempo de compilación en el script de configuración. Puedes buscarlo como tal:
find / -name nginx.pid 2>/dev/null
(debe emitir mientras se ejecuta nginx)
Solución:
sudo mkdir -p /usr/local/var/run/
ln -s /current/path/to/pid/file /usr/local/var/run/nginx.pid
Estoy usando nginx
en OS X 10.8. Recién instalado nginx
pero no se puede encontrar una manera de reiniciar nginx excepto kill nginx_pid
decir kill 64116
. Preguntándose si hay mejores formas de reiniciar nginx
.
Encontró algunos métodos en Google y SO, pero no funcionó:
nginx -s restart
sudo fuser -k 80/tcp ; sudo /etc/init.d/nginx restart
El mensaje de error para nginx -s restart
es
nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)
A veces también recibe este mensaje de error:
nginx: invalid option: "-s restart"
Como recurso futuro, puede consultar http://wiki.nginx.org/CommandLine
Nginx
probablemente se ejecuta como root, por lo que deberá ejecutar una variante del siguiente comando para afectarlo.
sudo nginx -s stop | reload | quit | reopen
Por lo general, no hay muchas razones para reiniciar Nginx
como lo haría Apache
. Si ha modificado un archivo de configuración, puede querer la opción de recarga.
Esto podría significar simplemente que nginx ya está detenido, no se está ejecutando en este momento.
Primero, confirme si nginx se está ejecutando, ejecute:
$ ps aux | grep nginx
Hay un error aquí. Dependiendo de si nginx se está ejecutando mientras modifica / reinicia Apache y / o modifica las configuraciones de nginx, es posible que se destruya este archivo (que básicamente es solo un puntero de ID de proceso).
Cuando intentes enviar cualquier señal a nginx,
nginx -s quit;
nginx -s stop;
nginx -s reload;
nginx usa este archivo para hacer referencia al ID del proceso al que necesita enviar la señal. Si el archivo no está allí, el enlace entre el proceso activo de nginx y la aplicación cli se rompe efectivamente.
De hecho, terminé en un estado en el que dos procesos nginx se ejecutaban simultáneamente, así que maté a ambos.
Para solucionar esto, puede forzar la finalización de los procesos nginx existentes a través del Monitor de actividad (luego ejecutar nginx y hacer que la aplicación cli cree un nuevo archivo nginx.pid) o si REALMENTE necesita mantener nginx en ejecución pero desea ejecutar nginx - s reload: crea manualmente un archivo en la ruta / run llamado nginx.pid e inserta el PID de los procesos nginx actualmente en ejecución (obtenidos a través del Activity Monitor).
Intenta ejecutar sudo nginx
antes de iniciar nginx.
Lo hago así:
Primero mata el progreso
ps aux | grep nginx
kill -9 {pid}
Luego, inicie nginx
nginx
¡Funciona!
Para volver a cargar el archivo de configuración personalizada, use
nginx -s reload -c /etc/nginx/conf.d/<config file>.conf
Para volver a cargar los archivos de configuración:
sudo nginx -s reload
Para reiniciar completamente nginx
:
sudo nginx -s quit
sudo nginx
Detalles
No hay señal de restart
para nginx. De los documentos, estas son las señales que acepta el proceso maestro:
SIGINT, SIGTERM Shut down quickly.
SIGHUP Reload configuration, start the new worker process with a new configuration, and gracefully shut down old worker processes.
SIGQUIT Shut down gracefully.
SIGUSR1 Reopen log files.
SIGUSR2 Upgrade the nginx executable on the fly.
SIGWINCH Shut down worker processes gracefully.
Es de suponer que podría enviar estas señales a la identificación del proceso manualmente, pero el comando nginx
tiene la bandera nginx -s <signal>
que envía señales al proceso maestro por usted. Tus opciones son:
stop SIGTERM
quit SIGQUIT
reopen SIGUSR1
reload SIGHUP
No es necesario usar el pid manualmente.
Editar: acaba de darse cuenta de que mucha de esta información ya estaba en comentarios sobre las otras respuestas. Dejando esto aquí de todos modos para resumir la situación.
Prueba esto:
sudo nginx -s stop
seguido de a:
sudo nginx
Parece que nginx realiza un seguimiento de su estado, si lo detiene dos veces, se quejará. Pero lo anterior funcionó para mí.
Tengo el mismo enlace de error, intenté arreglarlo pero no funciona después de que ejecuto la línea de comandos y funciona bien: nginx -c /usr/local/etc/nginx/nginx.conf
la información que obtuve de aquí https://blog.csdn.net/wn1245343496/article/details/77974756
Una forma de detener o recargar es mediante el siguiente comando:
Para detener:
sudo /usr/local/nginx/sbin/nginx -s stop
Ejecute recargar solo si el nginx se está ejecutando:
sudo /usr/local/nginx/sbin/nginx -s reload
Al hacer lo anterior, no obtendrá nginx: [error] abrir () "/usr/local/var/run/nginx.pid" este problema
compruebe si este directorio existe:
/usr/local/var/run
este error puede ocurrir cuando nginx intenta inicializar el archivo pid en la localización que no existe.