当线程等待标准输出时,保持运行python脚本
我使用python脚本在linux上接收输入并运行命令。一个线程接收到一个命令,它就会分解一个逻辑卷。但有时需要很长时间才能完成对磁盘逻辑卷的分解当线程等待标准输出时,保持运行python脚本,python,linux,multithreading,subprocess,multiprocessing,Python,Linux,Multithreading,Subprocess,Multiprocessing,我使用python脚本在linux上接收输入并运行命令。一个线程接收到一个命令,它就会分解一个逻辑卷。但有时需要很长时间才能完成对磁盘逻辑卷的分解 subproc.Popen('shred /dev/group/m1') python中的线程一次运行一个线程。因此,脚本挂起,在运行子流程时不接受其他输入。有没有办法解决这个问题,以便在线程等待来自标准输出的数据时,可以同时处理其他输入 对不起,我在windows上使用此选项: os.system("start /min cmd /c C:\Py
subproc.Popen('shred /dev/group/m1')
python中的线程一次运行一个线程。因此,脚本挂起,在运行子流程时不接受其他输入。有没有办法解决这个问题,以便在线程等待来自标准输出的数据时,可以同时处理其他输入 对不起,我在windows上使用此选项:
os.system("start /min cmd /c C:\Python27\python.exe sino1.py")
见:
Python执行Unix/Linux命令示例
将失败,除非您忘记显示Popen('shred/dev/group/m1')
参数shell=True
不会阻塞,无论子进程可能需要多长时间Popen()
- 您可以在多个Python线程中并行等待输入。Python可以在IO上释放GIL
子流程
模块,那么您的脚本就不会挂起。os.system()
是完全不必要的,它不会回答问题(它不允许在不阻塞的情况下读取子流程的输出)。