Python中如何把程序放到后台执行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中如何把程序放到后台执行相关的知识,希望对你有一定的参考价值。
直接上代码:
[[email protected] pythonscript]# cat getio.py
#!/usr/bin/env python
#encoding:utf8
import sys,time,os,platform
#定义我自己要在后台运行的程序
def getio():
while True:
os.system("/usr/sbin/iotop -n 2 -b -o -k >>/root/iotop.log")
time.sleep(10)
#fork后台运行进程
def createDaemon():
# fork进程
try:
if os.fork() > 0:
os._exit(0)
except OSError, error:
print ‘fork #1 failed: %d (%s)‘ % (error.errno, error.strerror)
os._exit(1)
os.chdir(‘/‘)
os.setsid()
os.umask(0)
try:
pid = os.fork()
if pid > 0:
print ‘Daemon PID %d‘ % pid
os._exit(0)
except OSError, error:
print ‘fork #2 failed: %d (%s)‘ % (error.errno, error.strerror)
os._exit(0)
# 重定向标准IO
sys.stdout.flush()
sys.stderr.flush()
si = file("/dev/null", ‘r‘)
so = file("/dev/null", ‘a+‘)
se = file("/dev/null", ‘a+‘, 0)
os.dup2(si.fileno(), sys.stdin.fileno())
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
# 在子进程中执行代码
getio()
#执行函数createDaemon
createDaemon()
以上是关于Python中如何把程序放到后台执行的主要内容,如果未能解决你的问题,请参考以下文章