想尝试着弄个守护进程,首先要简单的代码测试测试,代码如下:
<code>
# coding: utf8
from multiprocessing import Process
import os
import time
import setproctitle
setproctitle.setproctitle('subprocess')
def targ(x):
setproctitle.setproctitle('subprocess_' + str(x))
print '这是一个进程任务' + str(os.getpid())
while 1:
time.sleep(0.5)
processes = {}
def createProc(x):
process = Process(target=targ, args=(x,))
process.start()
processes[process.pid] = x
for x in range(2):
createProc(x)
for pid, x in processes.iteritems():
pid, status = os.wait()
del processes[pid]
createProc(x)
</code>
很明显,这个程序很容易就能跑起来,然后也产生了两个进程。并且kill掉其中一个进程的时候,进程也会重新被创建。
问题来了:
当我同时kill掉两个进程的时候,只有一个子进程能够重新创建。求解决办法。谢谢。
<code>
# coding: utf8
from multiprocessing import Process
import os
import time
import setproctitle
setproctitle.setproctitle('subprocess')
def targ(x):
setproctitle.setproctitle('subprocess_' + str(x))
print '这是一个进程任务' + str(os.getpid())
while 1:
time.sleep(0.5)
processes = {}
def createProc(x):
process = Process(target=targ, args=(x,))
process.start()
processes[process.pid] = x
for x in range(2):
createProc(x)
for pid, x in processes.iteritems():
pid, status = os.wait()
del processes[pid]
createProc(x)
</code>
很明显,这个程序很容易就能跑起来,然后也产生了两个进程。并且kill掉其中一个进程的时候,进程也会重新被创建。
问题来了:
当我同时kill掉两个进程的时候,只有一个子进程能够重新创建。求解决办法。谢谢。
