Python脚本后台运行的几种方式.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Python 脚本后台运行的几种方式 Python 脚本后台运行是一种常用的技术,在 Linux 环境下有多种实现方式。下面将详细介绍几种常见的方式。 使用 fork 实现后台运行 在 Linux 环境下,使用 fork 方式可以实现后台运行。fork 是一种创建新进程的系统调用,Python 通过 os.fork() 函数实现了 fork。示例代码如下: ```python import os import time def fonctionDemo(): # 具体业务函数示例 fout = open('/tmp/demone.log', 'w') while True: fout.write(time.ctime() + '\n') fout.flush() time.sleep(2) fout.close() def createDaemon(): 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(1) # 重定向标准输入输出 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()) fonctionDemo() # function demo if __name__ == '__main__': if platform.system() == "Linux": createDaemon() else: os._exit(0) ``` 使用 upstart 方式实现 Upstart 是一个 init 系统,可以将应用程序封装成系统服务。下面是一个完整的示例: 1. 编写 Python 脚本代码: ```python #!/usr/bin/env python import os, time while True: print time.time() time.sleep(1) ``` 2. 编写 Upstart 配置文件: ```bash description "My test" author "" start on runlevel [234] stop on runlevel [0156] chdir /test/t27 exec /test/t27/test123.py respawn ``` 3. 重新加载 Upstart 配置文件: ``` initctl reload-configuration ``` 4. 启动服务: ``` start mikeTest ``` 使用 screen 或 tmux 实现 Screen 和 Tmux 是两个常用的终端多路复用器,可以用于实现后台运行。例如,使用 Screen: ``` screen -d -m python test1.py & ``` 这将在后台运行 Python 脚本 test1.py。 使用 bash 脚本实现 可以使用 bash 脚本来实现后台运行。例如: ```bash #!/bin/bash python test1.py & ``` 这将在后台运行 Python 脚本 test1.py。 Python 脚本后台运行有多种实现方式,选择哪种方式取决于具体的应用场景。
- c119ch2022-04-30用户下载后在一定时间内未进行评价,系统默认好评。
- 粉丝: 0
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- matlab simulink 风储调频,风电调频,一次调频,四机两区系统,采用频域模型法使得风电渗透率25%,附加惯性控制
- java-leetcode题解之Generate Parentheses.java
- COMSOL孔隙渗流下的细颗粒迁移运动 对土石混合体进行了数值仿真,考虑了土石混合体孔隙变化,细颗粒侵蚀,骨架结构变形,此问题
- COMSOL三相变压器仿真振动噪声温度 变压器磁致伸缩振动噪声 温度 应力 形变 温度多场耦合计算
- java-leetcode题解之Gas Station.java
- java-leetcode题解之Game of Life.java
- comsol MXene超材料吸收器
- java-leetcode题解之Frog Jump.java
- java-leetcode题解之Friends Of Appropriate Ages.java
- java-leetcode题解之Friend Circles.java