我有这个密码:
import os
import time
def createDaemon():
try:
pid = os.fork()
if pid > 0:
print ('PID: %d' % pid)
os._exit(0)
except OSError as error:
print ('Unable to fork. Error: %d (%s)' % (error.errno, error.strerror))
os._exit(1)
doTask()
def doTask():
file = open('/tmp/tarefa.log', 'w')
while True:
file.flush()
time.sleep(2)
file.close()
def myfunction():
# do something, I am not implementing the code, it's useless for the question
createDaemon()
myfunction() # it is never executed.
正如您在注释中看到的,我想执行myfunction(),但它没有执行。我能做什么?我不是在写myfunction()的内容,因为它对我的问题没用。你知道吗
所以,让我们想想这个。分叉之后有两个进程,其中一个进程在分叉之后立即关闭。另一个进程则进入具有无限循环的doTask,它将无限期地休眠2秒。这就是为什么没有进程比createDaemon()调用更深入。你知道吗
您的代码从未到达对
myfunction()
的调用,因为:无限循环使线程无限期休眠2秒。去掉这个环,它就工作了。你知道吗
相关问题 更多 >
编程相关推荐