小编har*_*ish的帖子

从子进程执行curl的正确方法是什么?

我试图curlsubprocess下载图像调用,但不断得到卷曲错误(错误代码2 ..来自doc指的是CURL_FAILED_INIT).我没有使用,urllib因为我最终将使用执行脚本subprocess.以下是代码段

import subprocess
import multiprocessing

def worker(fname, k):
    f = open(fname, 'r')
    i = 0
    for imgurl in f:
        try:
            op = subprocess.call(['curl', '-O', imgurl], shell=False)
        except:
            print 'problem downloading image - ', imgurl

def main():
    flist = []
    flist.append(sys.argv[1])
    flist.append(sys.argv[2])
    ...

    for k in range(1):
        p = multiprocessing.Process(target=worker, args=(flist[k],k))
        p.start()
Run Code Online (Sandbox Code Playgroud)

O/P:

curl:尝试'curl --help'或'curl --manual'获取更多信息

2

curl:尝试'curl --help'或'curl --manual'获取更多信息

2

....

python curl subprocess

6
推荐指数
1
解决办法
7339
查看次数

当亲子在同一个端口上听时会发生什么?

我有一个父它启动时,揭开序幕的是创建一个端口上侦听X.这之后TCP Server实例的一个线程,家长开始分叉关子进程(这做几件事情并退出).请注意,这些子进程从父级继承fds,因此最终会侦听端口X.

父程序有一个处理程序,用于处理端口X上的请求但子进程没有这样的处理程序(它是一个os.execv() - ed C++程序)

我知道子进程可以关闭所有fds,在这种情况下不会出现上述情况.端口X上的传入请求会发生什么?怎么处理?

这是我到目前为止观察到的内容...父节点中的tcp请求处理程序在收到请求时执行commands.getstatusoutput(..).大多数时候,它表现得像预期的那样(或者我预期的方式) - 执行上述命令没有任何错误......但偶尔我会得到

File "/home/y/lib/python2.7/commands.py", line 61, in getstatusoutput
    sts = pipe.close()
IOError: [Errno 10] No child processes
Run Code Online (Sandbox Code Playgroud)

python sockets networking operating-system fork

1
推荐指数
1
解决办法
1611
查看次数

标签 统计

python ×2

curl ×1

fork ×1

networking ×1

operating-system ×1

sockets ×1

subprocess ×1