回复网友的代码准备:双击python

import os
import logging
import time
from multiprocessing import Process

# ========增加代码--开始========
def produce_stop_bat(pid, tmpfile="stop_xxx.bat"):
    '''
    生成kill指定进程的脚本文件*.bat
    :param pid:
    :param tmpfile:
    :return:
    '''
    # 待写入内容
    stop_cmd = 'taskkill /pid ' + str(pid) + ' /f'  # 关闭指定进程
    del_self_cmd = "del %0"  # 删除自身文件
    # 文件路径和名称
    tmp_all = "stop_" + tmpfile + ".bat"
    # 写入文件
    with open(file=tmp_all, mode="w") as f:
        f.write(stop_cmd + "
" + del_self_cmd)


def getpid_for_kill():
    '''
    获取当前进程号PID,并生成kill当前进程的脚本文件*.bat
    :return:
    '''
    # 进程号
    pid = os.getpid()
    # 本文件名(不含后缀.py)
    myfilename = os.path.split(__file__)[-1].split(".")[0]
    # 生成关闭进程的脚本文件
    produce_stop_bat(pid, myfilename)


# ========增加代码--结束========


def do_log_activity(name):
    '''
    做日志生成活动
    :return:
    '''
    # 如果日志文件夹不存在,则创建
    log_dir = "log"  # 日志存放文件夹名称
    log_path = os.getcwd() + os.sep + log_dir
    if not os.path.isdir(log_path):
        os.makedirs(log_path)

    # 设置logging
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)
    main_log_handler = logging.FileHandler(
        log_dir + "/dd_%s.log" % time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime(time.time())), mode="w+",
        encoding="utf-8")
    main_log_handler.setLevel(logging.DEBUG)
    formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
    main_log_handler.setFormatter(formatter)
    logger.addHandler(main_log_handler)
    # 控制台打印输出日志
    console = logging.StreamHandler()  # 定义一个StreamHandler,将INFO级别或更高的日志信息打印到标准错误,并将其添加到当前的日志处理对象
    console.setLevel(logging.INFO)  # 设置要打印日志的等级,低于这一等级,不会打印
    formatter = logging.Formatter("%(asctime)s - %(levelname)s: %(message)s")
    console.setFormatter(formatter)
    logging.getLogger('').addHandler(console)

    # 循环生成日志信息
    while True:
        time_stamp = time.time()
        # print("时间戳",time_stamp)
        logger.info("时间戳 %s" % time_stamp)
        logger.info('%s runing' % name)
        sec = 3
        logger.info("睡眠 %s 秒" % sec)
        time.sleep(sec)

# 启动函数
def run(name):
    # 获取当前进程号PID,并生成kill当前进程的脚本文件*.bat
    getpid_for_kill()
    # 启动日志生成活动
    do_log_activity(name)


if __name__ == '__main__':
    p1 = Process(target=run, args=("run_fun",), name="p1-进程")
    p1.start()
    # run()

  

原文地址:https://www.cnblogs.com/andy9468/p/13743546.html