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.