浏览 4493 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-07
server_address = ("", 7000) server = BaseHTTPServer.HTTPServer(server_address, ServerHandler) server.serve_forever() 现象: 1)在linux shell后台执行python脚本 python http_server.py & 2)退出当前shell exit 3)这时请求一下http服务 http://localhost:7000 4)报错 Traceback (most recent call last): File "http_server.py", line 57, in <module> server.serve_forever() File "/usr/local/lib/python2.6/SocketServer.py", line 226, in serve_forever self._handle_request_noblock() IOError: [Errno 5] Input/output error 原因: server.serve_forever()启动后,任何一个访问,都会输出访问历史记录: localhost - - [07/Sep/2011 15:21:24] "GET / HTTP/1.1" 200 - 这个log的输出,需要输出的载体,这里是依赖shell。如果此时退出了shell,log输出找不到地方,就会报出以上错误。 而且很诡异的是,这个log我怀疑是以error为输出管道,而不是标准的input输出管道,因为我尝试过python http_server.py > /dev/null &一样会报错。 解决: 既然缺少了log输出载体,我们就指定一个,这里使用/dev/null,传说中的垃圾回收站。 执行脚本使用: python http_server.py > /dev/null 2>&1 & 标准和error输出都扔到/dev/null 针对此现象的一个朋友的描述: http://hi.baidu.com/dalier/blog/item/bb9429301b60d290a9018e9f.html 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |