python创建子进程模块subprocess详解

最近,我们老大要我写一个守护者程序,对服务器进程进行守护。如果服务器不幸挂掉了,守护者能即时的重启应用程序。上网google了一下,发现python有很几个模块都可以创建进程。最终我选择使用subprocess模块,因为在python手册中有这样一段话:

  this module intends to replace several other, older modules and functions, such as: os.system、os.spawn*、os.popen*、popen2.*、commands.*

  subprocess被用来替换一些老的模块和函数,如:os.system、os.spawn*、os.popen*、popen2.*、commands.*。可见,subprocess是被推荐使用的模块。

下面是一个很简单的例子,创建一个新进程,执行app1.exe,传入相当的参数,并打印出进程的返回值:

代码如下:

import subprocess

returncode = subprocess.call(‘app1.exe -a -b -c -d’)
print ‘returncode:’, returncode

#—– 结果 ——–
#python is powerful
#app1.exe
#-a
#-b
#-c
#-d
returncode: 0

app1.exe是一个非常简单的控制台程序,它只打印出传入的参数,代码如下:

代码如下:

#include
using namespace std;

int main(int argc, const char *argv[])
{
cout

Posted in 未分类

发表评论