这篇文章主要介绍了
Python
脚本后台运行的几种方式
,linux
下后台运行、通过
upstart
方式实现、通过
bash
脚本实现、通过
screen
、
tmux
等方式实现
,
需要的朋友可以参考下
一个用
python
写的监控脚本
test1.py
,用
while
True
方式一直运行,在
ssh
远程(使用
putty
终端)时通过以下命令启动脚本:
代码如下
:
python test1.py &
现在脚本正常运行,通过
ps
能看到进程号,此时直接关闭
ssh
终端(不是用
exit
命令,
是直接通过
putty
的关闭按钮执行的)
,
再次登录后发现进程已经退出了。
通过后台启动的方式该问题已经解决,这里总结下,也方便我以后查阅。
linux
下后台运行
通过
fork
实现
linux
环境下,
在
c
中守护进程是通过
fork
方式实现的,
python
也可以通过该方式实现,
示例代码如下:
代码如下
:
#!/usr/bin/env python
import time,platform
import os
def funzioneDemo():
#
这是具体业务函数示例
fout = open('/tmp/demone.log', 'w')
while True:
fout.write(time.ctime()+'\n')
fout.flush()
time.sleep(2)
fout.close()
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)