Python脚本后台运行的几种方式

上传人:泽*** 文档编号:76297020 上传时间:2022-04-18 格式:DOC 页数:4 大小:25.50KB
收藏 版权申诉 举报 下载
Python脚本后台运行的几种方式_第1页
第1页 / 共4页
Python脚本后台运行的几种方式_第2页
第2页 / 共4页
Python脚本后台运行的几种方式_第3页
第3页 / 共4页
资源描述:

《Python脚本后台运行的几种方式》由会员分享,可在线阅读,更多相关《Python脚本后台运行的几种方式(4页珍藏版)》请在装配图网上搜索。

1、这篇文章主要介绍了Python 脚本后台运行的几种方式,linux 下后台运行、通过upstart方式实现、通过bash 脚本实现、通过screen、 tmux 等方式实现 ,需要的朋友可以参考下一个用 python 写的监控脚本test1.py,用 whileTrue 方式一直运行,在ssh 远程(使用putty 终端)时通过以下命令启动脚本:代码如下 :python test1.py &现在脚本正常运行,通过ps 能看到进程号,此时直接关闭ssh 终端(不是用exit 命令,是直接通过 putty 的关闭按钮执行的) , 再次登录后发现进程已经退出了。通过后台启动的方式该问题已经解

2、决,这里总结下,也方便我以后查阅。 linux 下后台运行通过 fork 实现linux 环境下, 在 c 中守护进程是通过 fork 方式实现的, python 也可以通过该方式实现,示例代码如下:代码如下 :#!/usr/bin/env pythonimport time,platformimport osdef funzioneDemo():# 这是具体业务函数示例fout = open(/tmp/demone.log, w)while True:fout.write(time.ctime()+n)fout.flush()time.sleep(2)fout.close()def crea

3、teDaemon():# 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 % pidos._exit(0)except OSError, error:print fork #2 failed: %d (

4、%s) % (error.errno, error.strerror)os._exit(1)# 重定向标准# 在子进程中执行代码funzioneDemo() # function demoif _name_ = _main_:if platform.system() = Linux:createDaemon()else:os._exit(0)通过 upstart 方式实现可以通过 upstart 把应用封装成系统服务,这里直接记录下完整示例。1、编写 python 脚本代码如下 :rootlocal t27# cat test123.py#!/usr/bin/env pythonimport

5、os,timewhile True :print time.time()time.sleep(1)2、编写 upstat 配置文件代码如下 :rootlocal t27# cat /etc/init/mikeTest.confdescription My testauthor start on runlevel 234stop on runlevel 0156chdir /test/t27exec /test/t27/test123.pyrespawn3、重新加载upstate代码如下 :initctl reload-configuration4、启动服务代码如下 :rootlocal t27

6、# start mikeTestmikeTest start/running, process 6635rootlocal t27# ps aux | grep test123.pyroot 6635 0.0 0.0 22448 3716 ? Ss 09:55 0:00 python /test/t27/test123.py root 6677 0.0 0.0 103212 752 pts/1 S+ 09:56 0:00 grep test123.py 5、停止服务代码如下 :rootlocal t27# stop mikeTestmikeTest stop/waitingrootlocal

7、t27# ps aux | grep test123.pyroot 6696 0.0 0.0 103212 752 pts/1 S+ 09:56 0:00 grep test123.py rootlocal t27#通过 bash 脚本实现1、 python 代码代码如下 :rootlocal test# cat test123.py#!/usr/bin/env pythonimport os,timewhile True :print time.time()time.sleep(1)2、编写启动脚本代码如下 :rootlocal test# cat start.sh#! /bin/shpyt

8、hon test123.py &3、启动进程代码如下 :rootlocal test#./start.sh如果直接用 & 启动进程 :代码如下 :python test123.py &直接关闭 ssh 终端会导致进程退出。通过 screen、 tmux 等方式实现如果临时跑程序的话,可以通过screen、tmux 启动程序, 这里描述下tmux 启动的方式。1、启动 tmux在终端输入tmux 即可启动2、在 tmux 中启动程序直接执行如下命令即可(脚本参考上面的) : python test123.py 3、直接关闭 ssh 终端(比如 putty 上的关闭按钮) ;4、重新 ssh 上去之后,执行如下命令:代码如下 :tmux attach现在可以看到python 程序还在正常执行。windows 下后台运行在 windows下没有深入的研究过,我经常用的方法是修改python 脚本的扩展名为.pyw ,双击即可后台运行,不需要修改任何代码。更多信息请查看IT 技术专栏

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!