zoukankan      html  css  js  c++  java
  • python脚本demo

    import atexit
    import logging
    import os
    import signal
    import sys
    from logging.handlers import RotatingFileHandler
    
    
    
    logger = logging.getLogger()
    MAX = 10 * 1024 * 1024
    BACK_UP_COUNT = 10
    def setup_logging():
        log_file = os.path.join(r'C:\',"demo.log")
        logger.setLevel(logging.INFO)
        file_handler = RotatingFileHandler(log_file,"a",MAX,BACK_UP_COUNT)
        file_handler.setFormatter(
            logging.Formatter(
                "[%(asctime)%s] [%(process)d] [%(levelname)s] - %(module)s.%(funcName)s"
                "(%(filename)s:%(lineno)d) - %(message)s"
            )
        )
        logger.addHandler(file_handler)
    PID_FILE = "fmpid.pid"
    def write_pid():
        with open(PID_FILE,"w") as f:
            f.write('%s
    '%(os.getpid()))
    
    def read_pid():
        try:
            with open(PID_FILE) as f:
                pid = int(f.read().strip())
        except Exception:
            pid = None
        return pid
    
    def remove_pid():
        if os.path.exists(PID_FILE):
            os.remove(PID_FILE)
    
    def sig_handler(sig,frame):
        logger.warning("shutting down, got signal %d"%sig)
        remove_pid()
        sys.exit(0)
    
    def setup_application():
        pid = read_pid()
        if pid:
            sys.stdout.write('processing is running...
    ')
            sys.exit(0)
        setup_logging()
        write_pid()
        atexit.register(remove_pid)
        for sig in (signal.SIGTERM,signal.SIGINT):
            signal.signal(sig,sig_handler)
    
    def main():
        setup_application()
        # 逻辑
    
    
  • 相关阅读:
    jar包和war包的介绍和区别
    Oracle中rownum的基本用法
    深入理解JVM—JVM内存模型
    Oracle数据库中序列(SEQUENCE)的用法详解
    jvm主内存与工作内存
    jvm虚拟机
    java 冒泡排序
    java二分查找
    java中split()特殊符号"." "|" "*" "" "]"
    java map的实现原理
  • 原文地址:https://www.cnblogs.com/xujunkai/p/12308322.html
Copyright © 2011-2022 走看看