1234567891011121314151617181920212223242526272829303132333435 |
- import logging
- import os
- import re
- import time
- import psutil
- logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
- def kill_soffice(limit_sec=30):
- pid_list = psutil.pids()
- for pid in pid_list:
- process = psutil.Process(pid)
- process_cmd = ''
- for c in process.cmdline():
- process_cmd += c + " "
- if process_cmd.strip() == "":
- continue
- if process.status() == "zombie":
- print("zombie cmd", process_cmd)
- if re.search("soffice", process.exe()):
- start_time = process.create_time()
- now_time = time.time()
- run_time = now_time-start_time
- if run_time >= limit_sec:
- comm = "kill -9 " + str(pid)
- os.system("echo $(date +%F%n%T)")
- print("kill process ", str(pid), str(process.exe()), str(run_time), ">", limit_sec)
- os.system(comm)
- if __name__ == "__main__":
- kill_soffice()
|