`
flysnowxf
  • 浏览: 577697 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

shell后台执行serve_forever()报出Input/output error

阅读更多
http_server.py为一个启动http服务器的脚本,大概代码:
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
分享到:
评论

相关推荐

    PHP后台循环锁定文件.zip_PHP后台循环_php文件锁定_shell_锁定

    本主题聚焦于“PHP后台循环锁定文件”,这是一个涉及PHP、后台循环以及shell锁定技术的实践应用。下面将详细阐述这些知识点。 首先,PHP后台循环是指在PHP环境中,通过编写代码使程序在后台持续运行,而不是像常规...

    获取网卡信息和shell命令程序重定向

    void DispNetCardInfo(char *dev) int GetNetCard(void) int GetIpAddr(char *pIpBuf) ...int net_get_shell_cmd_error_info(char *cmdstring, char *buf, int ilen) int net_shell_cmd_is_succ(char *cmdstring)

    shell 后台执行命令

    在Linux和Unix操作系统中,`shell`后台执行命令是一个重要的功能,它允许用户在不阻塞终端的情况下运行程序。这通常适用于那些长时间运行或者需要在特定时间执行的任务,以便用户可以继续其他工作。 首先,`cron`是...

    批量远程执行linux_shell命令_remote_shell.zip

    批量远程执行linux_shell命令_remote_shell

    apr-1.7.0-apr_escape_test_char.h.zip

    #define T_ESCAPE_SHELL_CMD (1) #define T_ESCAPE_PATH_SEGMENT (2) #define T_OS_ESCAPE_PATH (4) #define T_ESCAPE_ECHO (8) #define T_ESCAPE_URLENCODED (16) #define T_ESCAPE_XML (32) #define T_ESCAPE_LDAP...

    Android中级篇之用JAVA代码执行shell命令.rar_Android 执行shell_android_effectoh

    在Android开发中,有时我们需要执行一些系统级别的操作,如文件管理、权限控制或者硬件交互,这时就涉及到使用shell命令。本教程将深入讲解如何在Android应用中通过Java代码执行shell命令,以提升应用的功能和效率。...

    DLIR深度学习图像配准python源码+项目操作说明.zip

    模型神奇地显示出了泛化效果,在没有参与训练的数字 3 上也可以配准, 其它数字也一样: ![visdom-train](./pytorch/ckpts/mnist/visdom-test-3.jpg) ![visdom-train](./pytorch/ckpts/mnist/visdom-test-7.jpg) ...

    后台执行shell命令

    在Linux系统中,后台执行shell命令是日常系统管理和自动化任务执行的重要组成部分。这些命令允许我们无需保持终端会话打开即可运行程序,极大地提高了工作效率。本文将深入探讨标题中提到的几种后台执行命令,包括`...

    shell_ip_orangewgz_linux_shell_shell编程_shell脚本_

    本文将深入探讨标题"shell_ip_orangewgz_linux_shell_shell编程_shell脚本_"所提及的利用Shell编写判断IP地址合法性的脚本这一主题。我们将围绕Linux Shell、Shell脚本、shell编程以及如何在orangewgz Linux发行版上...

    用c语言实现的shell解释器

    #include #include #include #include #include &lt;sys/types.h&gt; #include &lt;sys/wait.h&gt; #include #define MAX_HOST_LEN 32 /* 主机名最大长度 */ #define MAX_PATH_LEN 256 /* 路径的最大长度 */ ...

    Linux_Shell.rar_Linux shell_linux shell_linux_shell_shell_unix

    Linux Shell 是Linux操作系统中不可或缺的一部分,它是一种命令行解释器,允许用户与系统进行交互,执行各种任务。本文将深入探讨Linux Shell的各个方面,包括基本概念、常用命令、脚本编程以及源码分析。 首先,...

    Shell_Scripts.zip

    Shell脚本是Linux/Unix操作系统中的重要工具,用于自动化日常任务和系统管理。在CentOS 7及其更新版本中,Shell脚本可以极大地提高工作效率,特别是在系统巡检和安全加固方面。这个名为"Shell_Scripts.zip"的压缩包...

    基于ChatGLM-6B模型的自定义数据集微调项目源码+运行教程.zip

    -overwrite_cache --output_dir ./output/adgen-chatglm-6b-pt-1282e-2 --overwrite_output_dir --max_source_length 64 --max_target_length 64 --per_device_train_batch_size 1 --per_device_eval_batch_size 1 -...

    利用app_process实现免root调用shell_Java_下载.zip

    在Android系统中,由于安全性的考虑,普通应用通常无法直接执行shell命令,这给了一些开发者在特定场景下进行系统级操作的限制。然而,通过巧妙地利用`app_process`,可以实现在不获取root权限的情况下调用shell命令...

    安卓 adb shell input keyevent 按键大全.txt

    在深入探讨安卓ADB Shell Input Keyevent按键大全之前,我们首先需要理解ADB(Android Debug Bridge)的概念及其作用。ADB是Google开发的一款用于与Android设备进行通信的工具,它提供了丰富的命令行选项来控制和...

    通过_curl_+_管道快速在线执行常用_Linux_Shell_命令_quick-shell.zip

    通过_curl_+_管道快速在线执行常用_Linux_Shell_命令_quick-shell

    图像处理程序大全 C++

    if (ERROR_ALREADY_EXISTS == GetLastError()) // 判断程序是否已运行 { AfxMessageBox("该应用程序已运行! ", MB_ICONINFORMATION | MB_OK); ExitProcess(0); // 退出应用程序 } } ReleaseMutex...

    远程控制主机的SHELL自动化管理 案例

    SHELL脚本作为Linux/Unix系统中的强大工具,可以实现对远程主机的自动化控制,尤其在处理定时任务和远程执行命令时尤为便捷。本案例将探讨如何利用SHELL脚本来定时获取远程主机上的Perl脚本执行结果,并将其记录到...

    bmi160调通bmi160的ACC+GYR_20160907.7z

    shell@octopus-perf:/ # input keyevent 82 设置→显示→休眠→无操作30分钟后(f1编译选项有永久) 设置→安全→屏幕锁定→无 设置→辅助功能→自动旋转屏幕(去掉选中即可就改为横屏了) su之后使用getevent -...

    shell.rar_嵌入式Linux_C/C++_

    1. **基本外部命令**:Shell支持许多内置命令,如`ls`列出目录内容,`cd`切换目录,`echo`打印文本等,同时也能够调用系统中的其他可执行程序,如编译器、解释器等。 2. **管道(Pipeline)**:管道允许将一个命令...

Global site tag (gtag.js) - Google Analytics