Python 创建子进程模块subprocess详解
最近,我们老大要我写一个守护者程序,对服务器进程进行守护。如果服务器不幸挂掉了,守护者能即时的重启应用程序。上网Google了一下,发现Python有很几个模块都可以创建进程。最终我选择使用subprocess模块,因为在Python手册中有这样一段话:
Thismoduleintendstoreplaceseveralother,oldermodulesandfunctions,suchas:os.system、os.spawn*、os.popen*、popen2.*、commands.*
subprocess被用来替换一些老的模块和函数,如:os.system、os.spawn*、os.popen*、popen2.*、commands.*。可见,subprocess是被推荐使用的模块。
下面是一个很简单的例子,创建一个新进程,执行app1.exe,传入相当的参数,并打印出进程的返回值:
importsubprocess
returnCode=subprocess.call('app1.exe-a-b-c-d') print'returncode:',returnCode
#-----结果-------- #Pythonispowerful #app1.exe #-a #-b #-c #-d returncode:0