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中如何把程序放到后台执行的主要内容,如果未能解决你的问题,请参考以下文章

怎样把开启的服务放到后台?

如何把linux后台任务调到前台

Linux环境下如何终止后台进程

Liunx 设置后台执行python程序

linux系统中挂起操作和强制结束操作(后台运行程序方法)

linux 远程主机后台运行任务 挂起脚本