使用tornado运行web程序错误解决方法:IOError: [Errno 5] Input/output error

本文介绍了一个关于Python HTTP服务器在运行过程中遇到的日志输出问题及其解决方案。当使用server.serve_forever()方法时,若shell被关闭,会导致因缺少日志输出载体而出现错误。文章提供了一种通过指定/dev/null作为日志输出目标的方法来解决该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因: 
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,传说中的垃圾回收站。 

执行脚本使用: 

(./main.py &) > /dev/null 2>&1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值