simplehttprequesthandler simple serve files example create accept python d3.js simplehttpserver

files - python-m simplehttpserver 8000



¿Cómo cierro un python simpleHTTPserver? (7)

Golpear ctrl + c una vez (esperar a traceback), y presionar ctrl + c de nuevo me dio el truco :)

Así que estoy tratando de aprender d3, y el wiki sugirió que

Para ver los ejemplos localmente, debe tener un servidor web local. Cualquier servidor web funcionará; por ejemplo, puede ejecutar el servidor integrado de Python:

python -m SimpleHTTPServer 8888 &

Genial ... solo que ahora tengo un servidor en ejecución ... pero en algún momento creo que debería cerrarlo de nuevo.

¿Hay una forma mejor de cerrarlo que usar kill <pid> ? Eso parece una especie de gran martillo para un pequeño trabajo.

(Estoy ejecutando Mac OS 10.6.8 (Snow Leopard))

FWIW: ctrl+c da aproximadamente 10 líneas de rastreo, quejándose de ser interrumpido.

kill -3 <pid> da una advertencia Finder en una ventana separada ''Python se cierra inesperadamente''.

Los kill <pid> y kill -15 <pid> predeterminados son relativamente limpios (y simples).


Parece exagerado, pero puede usar el supervisor para iniciar y detener su simpleHttpserver, y administrarlo completamente como un servicio.

O simplemente ejecútelo en primer plano como se sugiere y elimínelo con control c


Resulta que hay un apagado, pero esto debe iniciarse desde otro hilo.

Esta solución funcionó para mí: https://.com/a/22533929/573216


Simplemente está enviando señales a los procesos. kill es un comando para enviar esas señales.

El comando del teclado Ctrl + C ( + C ) envía un SIGINT, kill -9 envía un SIGKILL, y kill -15 envía un SIGTERM.

¿Qué señal desea enviar a su servidor para finalizarla?


o simplemente puedes kill %1 , lo que matará al primer trabajo puesto en segundo plano


si ha comenzado el servidor con

python -m SimpleHTTPServer 8888

luego puede presionar ctrl + c para bajar el servidor.

Pero si ha iniciado el servidor con

python -m SimpleHTTPServer 8888 &

o

python -m SimpleHTTPServer 8888 & disown

tienes que ver primero la lista para matar el proceso,

ejecutar comando

ps

o

ps aux | less

le mostrará un proceso en ejecución como este ..

PID TTY TIME CMD 7247 pts/3 00:00:00 python 7360 pts/3 00:00:00 ps 23606 pts/3 00:00:00 bash

puedes obtener el PID desde aquí. y mata ese proceso ejecutando este comando ...

kill -9 7247

aquí 7247 es la identificación de Python.

También por alguna razón, si el puerto aún está abierto, puede cerrar el puerto con este comando

fuser -k 8888/tcp

aquí 8888 es el puerto tcp abierto por python.

Espero que esté claro ahora.


MYPORT=8888; kill -9 `ps -ef |grep SimpleHTTPServer |grep $MYPORT |awk ''{print $2}''`

Eso es !!

Explicar línea de comando:

  • ps -ef : enumera todo el proceso.

  • grep SimpleHTTPServer : proceso de filtrado que pertenece a "SimpleHTTPServer"

  • grep $MYPORT : filter again process pertenece a "SimpleHTTPServer" donde el puerto es MYPORT (.ie: MYPORT = 8888)

  • awk ''{print $2}'' : imprime la segunda columna del resultado que es el PID (ID del proceso)

  • kill -9 <PID> : proceso Force Kill con el PID apropiado.