python to be linux daemon
2015-11-10 17:33
549 查看
所需第三方库:python-daemon[https://pypi.python.org/pypi/python-daemon/]
使用方式:
python linux_service.py start/stop/restart
备注:
日志级别:UNSET < DEBUG < INFO < WARNNING < ERROR<CRITICAL
当ch.setLevel(logging.DEBUG)时,可以打印出级别大于等于DEBUG的日志(包括DEBUG,INFO ,WARNNING , ERROR,CRITICAL)
使用方式:
python linux_service.py start/stop/restart
from mythings import start from daemon import runner import os import logging import inspect class App: def __init__(self): self.stdin_path = '/dev/null' self.stdout_path = '/dev/tty' self.stderr_path = '/dev/tty' self.pidfile_path = '/tmp/foo.pid' self.pidfile_timeout = 5 self.status = {'alive': True} this_file = inspect.getfile(inspect.currentframe()) current_path = os.path.abspath(os.path.dirname(this_file)) self.logfile = os.path.join(current_path, 'service.log') def _getLogger(self): logger = logging.getLogger('[My Service]') logger.setLevel(logging.DEBUG) fh = logging.FileHandler(self.logfile) fh.setLevel(logging.DEBUG) #ch = logging.StreamHandler() #ch.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s') fh.setFormatter(formatter) #ch.setFormatter(formatter) logger.addHandler(fh) #logger.addHandler(ch) logger.info('init logger...') return logger def run(self): self.logger = self._getLogger() self.logger.info('linux svc do run...') start(self.status, self.logger) app = App() daemon_runner = runner.DaemonRunner(app) daemon_runner.do_action()
备注:
日志级别:UNSET < DEBUG < INFO < WARNNING < ERROR<CRITICAL
当ch.setLevel(logging.DEBUG)时,可以打印出级别大于等于DEBUG的日志(包括DEBUG,INFO ,WARNNING , ERROR,CRITICAL)
相关文章推荐
- linux命令——编译
- 韩顺平Linux笔记(六)——linux分区
- linux查看java jdk安装路径和设置环境变量
- linux----suid\sgid
- Linux下修改Mysql的用户(root)的密码
- Centos ping相关
- 设置Linux时间 同步时间
- 如何在CentOS5中增加CentALT的源
- Linux 下wdcp支持两种安装方式
- linux下用gdb调试python程序
- Linux上iptables防火墙的基本应用
- CentOS下修复grub引导程序
- greenplum集群的安装
- Linux下vsftpd搭建过程(防火墙版)
- Linux_vi常用指令
- Linux下iftop网卡流量监控使用
- linux 中 安装 rz sz
- linux解压zip、bz、bz2、z、gz、tar(解包)
- linux查看硬件信息
- linux用scp远程传输文件(自动化)