以不同的CMD名称同时运行多个python脚本
我尝试通过multiprocessing.Process()在test.py中同时调用a.py和b.py,它工作正常。但是进程CMD'/ usr/bin/python /tmp/test.py'的a.py,b.py和test.py的名称是相同的。以不同的CMD名称同时运行多个python脚本
# ps -ef | grep b.py
UID PID PPID C STIME TTY TIME CMD
501 61486 39878 0 2:33PM ?? 0:00.05 /usr/bin/python /tmp/test.py
501 61487 61486 0 2:33PM ?? 0:00.01 /usr/bin/python /tmp/test.py
501 61488 61486 0 2:33PM ?? 0:00.01 /usr/bin/python /tmp/test.py
我想有这三个过程显示通过“PS -ef”如下不同的CMD名称:(这可以帮助我识别不同的进程是否正在运行或不。)
# ps -ef | grep b.py
UID PID PPID C STIME TTY TIME CMD
501 61486 39878 0 2:33PM ?? 0:00.05 /usr/bin/python /tmp/test.py
501 61487 61486 0 2:33PM ?? 0:00.01 /usr/bin/python /tmp/a.py
501 61488 61486 0 2:33PM ?? 0:00.01 /usr/bin/python /tmp/b.py
请帮忙咨询:)
源代码如下:
test.py:
import multiprocessing
import a
import b
p1 = multiprocessing.Process(target=a.printa)
p2 = multiprocessing.Process(target=b.printb)
p1.start()
p2.start()
a.py:
import time
def printa():
while True:
print 'a'
time.sleep(1)
if __name__ == '__main__':
printa()
b.py:
import time
def printb():
while True:
print 'b'
time.sleep(1)
if __name__ == '__main__':
printb()
您正在使用a.py
和b.py
在蟒蛇库,因此它是根据同名称为执行的文件test.py
。使用multiprocessing
或joblib
发生相同的情况。
Process
方法(multiprocessing.Process(self, group=None, target=None, name=None, args=(), kwargs={})
)中有一个名称选项,但@fedterzi说,它仅用于识别目的。
如果你想调用一个进程或文件,你可以使用库subprocess。
根据您正在执行,如parellelizing一堆进程的任务,你也可以在为了完成你想要的行为,请使用gnu parallel或其他方法,通过bash
。
不,进程的名称不会改变进程标题,只是为了标识目的 – fedterzi
阅读的Python»2.7.13文档using-the-subprocess-module
选择从subprocess
一个NOWAIT方法, 编辑您的问题,相应的代码。
import subprocess
def openCmd(name):
return subprocess.?
if __name__ == '__main__':
while True:
key = raw_input('input 1=open, 0=terminate, q=quit:')
print(key)
if key == '1':
A_p = openCmd(('a'))
B_p = openCmd(('b'))
if key == '0':
A_p.terminate()
B_p.terminate()
if key == 'q':
break
测试与Python:2.7.9
'return subprocess。?'是什么?意思?谢谢:) –
@WillZhou:'subprocess。?'是一个占位符。阅读建议的文档并从'subprocess'模块中选择一种方法。 – stovfl
这是我的问题的解决方案,但似乎有点通过列出蟒蛇xxx.py&** **的行奇。 http://stackoverflow.com/questions/28549641/run-multiple-python-scripts-concurrently –
使用'Subprocess'而不是'Process' – stovfl
@stovfl'subprocess'可以调用模块的特定方法吗?谢谢。 –