25得票6回答
popen()函数能否像pipe()+fork()一样生成双向管道?

我正在使用C++(主要是C)在模拟文件系统上实现管道。它需要在宿主shell中运行命令,但在模拟文件系统上执行管道操作。 我可以使用pipe(), fork(), 和 system()系统调用来实现这一点,但我更喜欢使用popen()(它处理创建管道、fork进程和将命令传递给shell)。...

24得票4回答
subprocess.wait()没有等待Popen进程完成(在使用线程时)?

在使用subprocess.Popen()调用多个相同应用程序实例并使用线程同时运行时,我遇到了一些问题。在每个线程中,我使用popen()调用来运行应用程序,然后通过调用wait()等待其完成。问题似乎是wait()调用实际上没有等待进程完成。我进行了一些实验,只使用一个线程,并在进程启动和...

23得票8回答
使用popen启动的进程如何终止?

使用popen打开一个进程的管道后,有没有一种方法可以杀死已经启动的进程?(使用pclose不是我想要的,因为它会等待进程完成,但我需要将其杀死。)

23得票7回答
Python,Popen和select - 等待进程终止或超时

我使用以下命令来运行一个子进程: p = subprocess.Popen("subprocess", stdout=subprocess.PIPE, stderr=subprocess.PIPE...

23得票3回答
Python:在后台进程上使用popen poll

我正在后台运行一个长时间的进程(实际上是另一个 Python 脚本)。 我需要知道它何时完成。 我发现 Popen.poll() 始终返回 0,用于后台进程。是否有其他方法可以做到这一点?p = subprocess.Popen("sleep 30 &", shell=True, ...

22得票5回答
Python - 如何使用管道调用bash命令?

我可以在Linux的命令行中正常运行这个:$ tar c my_dir | md5sum 但是,当我试图用Python调用它时,出现了错误:>>> subprocess.Popen(['tar','-c','my_dir','|','md5sum'],shell=True) ...

21得票3回答
Python Popen.communicate() 内存限制的替代方案是什么?

我有以下这段Python代码(运行版本为2.7),在处理大文件(几GB)时会导致MemoryError异常抛出:myProcess = Popen(myCmd, shell=True, stdout=PIPE, stderr=PIPE) myStdout, myStderr = myProce...

21得票4回答
通过 subprocess.Popen 和 ssh 启动的远程进程如何发送 Ctrl-C 信号?

如何在多个Popen()对象中发送Ctrl-C以终止ssh -t进程? 我有一些Python代码,可以在远程主机上启动脚本: # kickoff.py # i call 'ssh' w/ the '-t' flag so that when i press 'ctrl-c', it ge...

21得票3回答
Popen 在子进程已终止时仍等待子进程的问题

我正在Windows 8/XP上使用Python 2.7。我有一个程序A,它使用以下代码运行另一个程序B:p = Popen(["B"], stdout=PIPE, stderr=PIPE) stdout, stderr = p.communicate() return B...

21得票2回答
subprocess.Popen的args参数最大长度是多少?

我正在使用subprocess模块中的Popen函数来执行命令行工具: subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, clos...