# coding:utf-8 # --------------------------------------------------------------------------------- # MW-Linux面板 # --------------------------------------------------------------------------------- # copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved. # --------------------------------------------------------------------------------- # Author: midoks # --------------------------------------------------------------------------------- import os import pwd import time import core.mw as mw # 删除进程下的所有进程 def removeTaskRecursion(pid): cmd = "ps -ef|grep %s | grep -v grep |sed -n '2,1p' | awk '{print $2}'" % pid sub_pid = mw.execShell(cmd) if sub_pid[0].strip() == '': return 'ok' if sub_pid[0].strip() == pid : return 'ok' removeTaskRecursion(sub_pid[0].strip()) mw.execShell('kill -9 ' + sub_pid[0].strip()) return sub_pid[0].strip() # 删除任务 def removeTask(task_id): try: name = mw.M('tasks').where('id=?', (task_id,)).getField('name') status = mw.M('tasks').where('id=?', (task_id,)).getField('status') mw.M('tasks').delete(task_id) if str(status) == '-1': cmd = "ps aux | grep 'panel_task.py' | grep -v grep |awk '{print $2}'" task_pid = mw.execShell(cmd) task_list = task_pid[0].strip().split("\n") for i in range(len(task_list)): removeTaskRecursion(task_list[i]) t = mw.execShell('kill -9 ' + task_list[i]) print(t) mw.triggerTask() mw.restartTask() except Exception as e: mw.restartTask() # 删除日志 task_log = mw.getPanelDir() + "/tmp/panelTask.pl" if os.path.exists(task_log): os.remove(task_log) return mw.returnData(True, '任务已删除!')