2 votos

La ejecución de una aplicación en segundo plano

Tengo una aplicación web en un servidor freebsd. Una aplicación es un solo archivo ejecutable, con un servidor web incorporado. Mi shell por defecto es zsh.

Cuando estoy corriendo "./misitioweb &" y cerrar una conexión, se termina. Sin embargo, cuando me cambie a bash por "/usr/local/bin/bash" y ejecutar mi sitio web, de la misma manera "./misitioweb &", a continuación, salir de fiesta y cerrar una conexión, mi web sigue trabajando-exactamente lo que necesito.

Lo que está pasando aquí, ¿por qué seguir corriendo en bash después de cerrar una conexión a mi servidor?

Es una buena práctica para ejecutar una aplicación en segundo plano de esta manera? Si no, ¿cuál es la forma correcta de ejecutar mi sitio web, de forma que no terminará después de que me desconecte?

1voto

Jaroslav Kucera Puntos 11

O puede ejecutar en pantalla:

screen -dm bash -c '/path/to/your/program'

0voto

arrowd Puntos 113

La forma correcta es a su vez su aplicación en un servicio del sistema y agregar yourapp_enable="YES" en /etc/rc.conf para [re]se iniciará de forma automática. Ver Prácticos rc.d de secuencias de comandos en BSD artículo, por ejemplo.

0voto

user1700494 Puntos 353

Usted necesita usar nohup comando

nohup ./my_website &

Permitirá su proceso de ejecución después del proceso padre muere/salidas, independientemente de la concha.

0voto

citrin Puntos 356

Depende de lo que se le meta. Si usted necesita para ejecutar este webserver de un corto período de tiempo (desarrollo/prueba), usted puede utilizar la pantalla/tmux y dejarlo en una sesión abierta.

Si desea ejecutar esta aplicación en la producción es mejor escribir un script de inicio. Si esta aplicación no se puede demonizar a ellos-auto puedes utilizar daemon(8). Recomiendo la lectura de Prácticas de rc.d de secuencias de comandos en BSD, también usted puede encontrar una gran cantidad de ejemplos en el árbol de portes. Para encontrar los scripts rc con daemon puede utilizar el comando find /usr/ports/ -depth 4 -name *.in | xargs fgrep -l /usr/sbin/daemon

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: