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()