From beccfe8519c44c78146ebd1e78d5f8161066c53c Mon Sep 17 00:00:00 2001 From: Mr Chen Date: Tue, 4 Jun 2024 18:19:17 +0800 Subject: [PATCH] update --- plugins/task_manager/js/task_manager.js | 17 +++++++----- plugins/task_manager/task_manager_index.py | 31 +++++++++++++++++++++- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/plugins/task_manager/js/task_manager.js b/plugins/task_manager/js/task_manager.js index 8dc9ffa76..483db1185 100644 --- a/plugins/task_manager/js/task_manager.js +++ b/plugins/task_manager/js/task_manager.js @@ -913,13 +913,16 @@ function open_path(path) { //删除服务 function remove_service(serviceName) { - SafeMessage('删除服务【' + serviceName + '】', '删除后可能导致您的环境无法正常运行,继续吗?', function () { - var loadT = layer.msg('正在删除服务[' + serviceName + ']..', {icon: 16, time: 0, shade: [0.3, '#000']}); - $.post('/plugin?action=a&name=task_manager&s=remove_service', {serviceName: serviceName}, function (rdata) { - layer.close(loadT); - layer.msg(rdata.msg, {icon: rdata.status ? 1 : 2}); - if (rdata.status) get_service_list(); - }); + safeMessage('删除服务【' + serviceName + '】', '删除后可能导致您的环境无法正常运行,继续吗?', function () { + var loadT = layer.msg('正在删除服务[' + serviceName + ']..', {icon: 16, time: 0, shade: [0.3, '#000']}); + tmPostCallback('remove_service', {serviceName:serviceName}, function(data){ + layer.close(loadT); + showMsg(rdata.msg, function(){ + if (rdata.status){ + get_service_list(); + } + },{icon: rdata.status ? 1 : 2}) + }); }); } diff --git a/plugins/task_manager/task_manager_index.py b/plugins/task_manager/task_manager_index.py index 722feeff2..6a83bd498 100755 --- a/plugins/task_manager/task_manager_index.py +++ b/plugins/task_manager/task_manager_index.py @@ -1217,6 +1217,34 @@ class mainClass(object): serviceList.append(serviceInfo) return serviceList + # 外部接口,删除服务。不能删除mw + def remove_service(self, get): + if not 'serviceName' in get: + return mw.returnData(False,'缺少参数'); + + serviceName = get['serviceName'] + if serviceName == 'mw': return mw.returnData(False, '不能通过面板结束面板服务!') + systemctl_user_path = '/usr/lib/systemd/system/' + if os.path.exists(systemctl_user_path + serviceName + '.service'): + return mw.returnData(False,'Systemctl托管的服务不能通过面板删除'); + + mw.execShell('service ' + serviceName + ' stop') + if os.path.exists('/usr/sbin/update-rc.d'): + mw.execShell('update-rc.d ' + serviceName + ' remove') + elif os.path.exists('/usr/sbin/chkconfig'): + mw.execShell('chkconfig --del ' + serviceName) + else: + mw.execShell("rm -f /etc/rc0.d/*" + serviceName) + mw.execShell("rm -f /etc/rc1.d/*" + serviceName) + mw.execShell("rm -f /etc/rc2.d/*" + serviceName) + mw.execShell("rm -f /etc/rc3.d/*" + serviceName) + mw.execShell("rm -f /etc/rc4.d/*" + serviceName) + mw.execShell("rm -f /etc/rc5.d/*" + serviceName) + mw.execShell("rm -f /etc/rc6.d/*" + serviceName) + filename = '/etc/init.d/' + serviceName + if os.path.exists(filename): os.remove(filename) + return mw.returnData(True, '删除成功!') + # 外部接口 查询服务启动级别 /etc/init.d/ def get_service_list(self, get = {}): data = {} @@ -1355,7 +1383,8 @@ def kill_process_all(args = {}): return mw.returnData(False, '缺少参数!') return mc_instance.kill_process_all(int(args['pid'])) - +def remove_service(args = {}): + return mc_instance.remove_service(args) def get_service_list(args = {}): return mc_instance.get_service_list(args)