问题描述:
环境: CentOS6.4
一个用python写的监控脚本test1.py,用while True方式一直运行,在ssh远程(使用putty终端)时通过以下命令启动脚本:
python test1.py &
现在脚本正常运行,通过ps能看到进程号,此时直接关闭ssh终端(不是用exit命令,是直接通过putty的关闭按钮执行的), 再次登录后发现进程已经退出了。
通过后台启动的方式该问题已经解决,这里总结下,也方便我以后查阅。
linux 下后台运行
通过fork实现
linux环境下,在c中守护进程是通过fork方式实现的,python也可以通过该方式实现,示例代码如下:
1 #!/usr/bin/env python 2 #E-Mail : Mike_Zhang@live.com 3 import time,platform 4 import os 5 6 def funzioneDemo(): 7 # 这是具体业务函数示例 8 fout = open('/tmp/demone.log', 'w') 9 while True: 10 fout.write(time.ctime()+'\n