Tengo un servidor basado en Python que empiezo desde la terminal. Esta instancia particular del terminal le da el control al programa, y el programa lo usa como una especie de ventana de registro, hasta que se cierra. ¿Es esto normal, o debería intentar iniciar el programa de alguna otra manera en la que simplemente se mostrará como un proceso activo? Si cierro el terminal desde el que comencé el programa, el programa muere con él.
Gracias
command-line
python
services
U2ros
fuente
fuente
Respuestas:
Incluso el viejo bash está usando & para enviar procesos a segundo plano, pero también hay algunas otras formas ... pero las dos básicas son estas:
Algunos otros comandos útiles:
fuente
Conviértalo en un demonio (servicio)
daemon --name="yourservicename" --output=log.txt sh yourscript.sh
fuente
El uso
&
hace que el programa se ejecute en segundo plano, en lugar de bloquear el shell hasta que finalice el programa.fuente
dixon@dixon-vaio:~$ nautilus & [1] 11835
. Devuelve la identificación del proceso y aparecerá un nuevo indicador de shell. Verifique también esto: http://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and .También puedes usar:
Aquí está el script init.d para iniciar y detener un programa en segundo plano.
fuente
Desde la terminal también puede ejecutar
screen
o hacer un seguimiento con su comando&
. Manera fácil de ejecutar procesos continuos.fuente
&
En mi opinión, solo usar como fondo el proceso en este caso es muy poco. OP afirma que su servidor se registra en stdout, por lo que&
su terminal estará abarrotada de resultados. Además, dado que OP menciona el cierre del terminal , OP no podrá volver a poner en primer plano el proceso y se perderá toda la salida del registro. Mejor, al menos, redirigirlo a un archivo de registro o seguir con lascreen
configuración, pero luego explique los conceptos básicos descreen
OP (separar / adjuntar / etc.)