kill_office.py 1019 B

1234567891011121314151617181920212223242526272829303132333435
  1. import logging
  2. import os
  3. import re
  4. import time
  5. import psutil
  6. logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  7. def kill_soffice(limit_sec=30):
  8. pid_list = psutil.pids()
  9. for pid in pid_list:
  10. process = psutil.Process(pid)
  11. process_cmd = ''
  12. for c in process.cmdline():
  13. process_cmd += c + " "
  14. if process_cmd.strip() == "":
  15. continue
  16. if process.status() == "zombie":
  17. print("zombie cmd", process_cmd)
  18. if re.search("soffice", process.exe()):
  19. start_time = process.create_time()
  20. now_time = time.time()
  21. run_time = now_time-start_time
  22. if run_time >= limit_sec:
  23. comm = "kill -9 " + str(pid)
  24. os.system("echo $(date +%F%n%T)")
  25. print("kill process ", str(pid), str(process.exe()), str(run_time), ">", limit_sec)
  26. os.system(comm)
  27. if __name__ == "__main__":
  28. kill_soffice()