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

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

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

  1. import signal
  2. import sys
  3. import logging
  4. import time
  5. import os
  6. def main():
  7. print("Main function execution")
  8. print("Waiting")
  9. signal.signal(signal.SIGHUP, signal_handler)
  10. time.sleep(10)
  11. #How to stop process before signal handler is called?
  12. def signal_handler(sig, frame):
  13. logging.basicConfig(filename="DelFIle.log", format='%(asctime)s %(message)s',filemode='w')
  14. logging.warning(os.getcwd()+"/Del_folder")
  15. os.remove(os.path.join(os.getcwd(),"/Del_folder/index.txt"))
  16. def Function2():
  17. common resource for main and signal_handler
  18. if __name__=="__main__":
  19. main()

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

gudnpqoy

gudnpqoy1#

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

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

相关问题