ubuntu 如何在python中编写一个程序来检测进程并停止进程

c9qzyr3d  于 2022-11-02  发布在  Python
关注(0)|答案(1)|浏览(191)

如何识别运行main()的进程,并在signal_handler运行之前终止该进程?

import signal
import sys
import logging
import time
import os

def main():
    print("Main function execution")

    print("Waiting")
    signal.signal(signal.SIGHUP, signal_handler)
    time.sleep(10)
    #How to stop process before signal handler is called?   

def signal_handler(sig, frame):
    logging.basicConfig(filename="DelFIle.log", format='%(asctime)s %(message)s',filemode='w')
    logging.warning(os.getcwd()+"/Del_folder")
    os.remove(os.path.join(os.getcwd(),"/Del_folder/index.txt"))

def Function2():
common resource for main and signal_handler

if __name__=="__main__":
    main()

由于主函数可能包含信号处理程序也可能正在使用的资源,因此由于公共资源处理,我收到了输入/输出错误

gudnpqoy

gudnpqoy1#

p=Process(target=Function2,args='')
p.start()
p.join()

在signal_handler的功能中添加以下代码帮助我创建了另一个进程来访问FUnction2,而无需争用资源

相关问题