GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo hago para que mi servidor web Golang se ejecute en segundo plano?

Primero las cosas simples/usables

Si desea un script de inicio sin mucho esfuerzo (es decir, manejar el proceso, simplemente tenerlo administrado por el sistema), puede crear un systemd Servicio. Consulte la respuesta de Greg para obtener una descripción detallada de cómo hacerlo. Luego, puede iniciar el servicio con

systemctl start myserver

Anteriormente hubiera recomendado probar xinetd o algo similar para una granularidad más fina con respecto a la gestión de recursos y permisos, pero systemd ya cubre eso.

Uso del caparazón

Podrías comenzar tu proceso así:

nohup ./myexecutable &

El & le dice al shell que inicie el comando en segundo plano, manteniéndolo en la lista de trabajos. En algunos shells, el trabajo se cancela si el shell principal sale usando la señal HANGUP. Para evitar esto, puede iniciar su comando usando el nohup comando, que descarta la señal HANGUP.

Sin embargo, esto no funciona si el proceso llamado vuelve a conectar la señal HANGUP.

Para estar realmente seguro, debe eliminar el proceso de la lista de tareas del shell. Para dos shells bien conocidos, esto se puede lograr de la siguiente manera:

golpe:

./myexecutable &
disown <pid>

zsh:

./myexecutable &!

Eliminar su trabajo en segundo plano

Normalmente, el shell imprime el PID del proceso, que luego se puede eliminar usando el kill comando, para detener el servidor. Si su shell no imprime el PID, puede obtenerlo usando

echo $!

directamente después de la ejecución. Esto imprime el PID del proceso bifurcado.


Puede usar Supervisord para administrar su proceso.


Linux
  1. Cómo cambiar el nombre de host en un servidor web cPanel

  2. Cómo instalar el servidor web Apache en Ubuntu

  3. Cómo ejecutar el proceso Rsync en segundo plano

  4. ¿Cómo obtener la hora de inicio de un proceso de Linux de larga duración?

  5. ¿Cómo ejecutar un script cuando llega un correo al servidor de correo? (Debian)

Cómo iniciar el comando de Linux en segundo plano y separar el proceso en la terminal

Cómo obtener el mejor rendimiento del servidor Nginx

Cómo ejecutar diferentes versiones de PHP en el mismo servidor

Cómo instalar la plataforma de analítica web Matomo en Ubuntu Server 20.04

Cómo enviar procesos a segundo plano en Linux

¿Cómo ejecutar un comando en segundo plano con un retraso?