如何closurespython simpleHTTPserver?
所以我试图学习D3, 维基build议
要在本地查看示例,您必须具有本地Web服务器。 任何Web服务器将工作; 例如你可以运行Python的内置服务器:
python -m SimpleHTTPServer 8888 &
太棒了…只有现在我有一台服务器在运行…但是在某个时候,我想我应该再次closures它。
有没有比使用kill <pid>
更好的closures方法? 这似乎是一个小工作的大锤子。
(我正在运行Mac OS 10.6.8(Snow Leopard))
FWIW: ctrl+c
给出大概10行回溯,抱怨中断。
kill -3 <pid>
在另一个窗口“Python意外退出”中给出Finder警告。
默认的kill <pid>
和kill -15 <pid>
相对干净(而且很简单)。
你只是发送信号的过程。 kill
是发送这些信号的命令。
键盘命令Ctrl + C( ⌃
+ C
)发送一个SIGINT, kill -9
发送一个SIGKILL,并且kill -15
发送一个SIGTERM。
你想发送什么信号到你的服务器来结束它?
如果你已经启动了服务器
python -m SimpleHTTPServer 8888
那么你可以按ctrl + cclosures服务器。
但是如果你已经启动了服务器
python -m SimpleHTTPServer 8888 &
要么
python -m SimpleHTTPServer 8888 & disown
你必须先看清单才能杀死进程,
运行命令
ps
要么
ps aux | less
它会告诉你一些像这样的运行过程
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
你可以从这里得到PID。 并通过运行此命令来终止该进程。
kill -9 7247
这里7247是python id。
另外由于某种原因,如果端口仍然打开,您可以使用此命令closures端口
fuser -k 8888/tcp
这里8888是由python打开的tcp端口。
希望现在清楚。
或者你可以kill %1
,这会杀死放在后台的第一个作业
MYPORT=8888; kill -9 `ps -ef |grep SimpleHTTPServer |grep $MYPORT |awk '{print $2}'`
这就对了 !!
解释命令行:
-
ps -ef
:列出所有进程。 -
grep SimpleHTTPServer
:属于“SimpleHTTPServer”的过滤程序 -
grep $MYPORT
:再次过滤进程属于“SimpleHTTPServer”,其中端口是MYPORT(.ie:MYPORT = 8888) -
awk '{print $2}'
:打印结果的第二列,即PID(进程ID) -
kill -9 <PID>
:用适当的PID强制终止进程。
这似乎是矫枉过正,但你可以使用主pipe来启动和停止你的simpleHttpserver,并将其作为服务完全pipe理。
或者只是按照build议在前台运行它,并用控制c杀死它
原来有一个关机,但这必须从另一个线程启动。
此解决scheme为我工作: https : //stackoverflow.com/a/22533929/573216
按ctrl + c一次(等待追溯),然后再次按ctrl + c做了我的伎俩:)