From edbdbc21acf0b755ec9666151e8a74d0b0808e09 Mon Sep 17 00:00:00 2001 From: snltty <1069410172@qq.com> Date: Thu, 18 Jul 2024 01:10:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=99=9A=E6=8B=9F=E7=BD=91?= =?UTF-8?q?=E5=8D=A1=E6=B7=BB=E5=8A=A0=E8=B7=AF=E7=94=B1=E9=94=99=E8=AF=AF?= =?UTF-8?q?=EF=BC=8C=E5=92=8C=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linker.service/LinkerService.cs | 87 +++++++++++++++++++--- linker.tray.win/default.aproj | 2 +- linker.tray.win/dist/linker.tray.win.exe | Bin 1442816 -> 1453568 bytes linker.tray.win/main.aardio | 11 +++ linker/plugins/updater/UpdaterTransfer.cs | 19 +---- 5 files changed, 91 insertions(+), 28 deletions(-) diff --git a/linker.service/LinkerService.cs b/linker.service/LinkerService.cs index 748aef17..c7a557aa 100644 --- a/linker.service/LinkerService.cs +++ b/linker.service/LinkerService.cs @@ -17,8 +17,9 @@ namespace linker.service protected override void OnStart(string[] _args) { + OpenExe(); + OpenExeTray(); CheckMainProcess(); - } protected override void OnStop() { @@ -28,8 +29,10 @@ namespace linker.service } private Process proc; + private Process procTray; private void CheckMainProcess() { + Task.Run(async () => { while (cancellationTokenSource.IsCancellationRequested == false) @@ -38,8 +41,7 @@ namespace linker.service { if (Process.GetProcessesByName(mainExeName).Any() == false) { - KillExe(); - OpenExe(); + RestartService(); } } catch (Exception) @@ -55,20 +57,17 @@ namespace linker.service { string filename = Process.GetCurrentProcess().MainModule.FileName; string dir = Path.GetDirectoryName(filename); - string file = Path.Combine(dir, $"{mainExeName}.exe"); - ProcessStartInfo processStartInfo = new ProcessStartInfo() + proc = Process.Start(new ProcessStartInfo() { WorkingDirectory = dir, - FileName = file, + FileName = Path.Combine(dir, $"{mainExeName}.exe"), CreateNoWindow = false, ErrorDialog = false, UseShellExecute = true, WindowStyle = ProcessWindowStyle.Hidden, //Arguments = string.Join(" ", this.args), Verb = "runas", - }; - proc = Process.Start(processStartInfo); - + }); return true; } catch (Exception) @@ -105,5 +104,75 @@ namespace linker.service proc = null; } } + + private bool OpenExeTray() + { + try + { + string filename = Process.GetCurrentProcess().MainModule.FileName; + string dir = Path.GetDirectoryName(filename); + procTray = Process.Start(new ProcessStartInfo() + { + WorkingDirectory = dir, + FileName = Path.Combine(dir, $"{mainExeName}.tray.win.exe"), + CreateNoWindow = false, + ErrorDialog = false, + UseShellExecute = true, + WindowStyle = ProcessWindowStyle.Hidden, + Arguments = "--task=1", + Verb = "runas", + }); + + return true; + } + catch (Exception) + { + try + { + procTray.Kill(); + procTray.Dispose(); + } + catch (Exception) + { + } + procTray = null; + } + return false; + } + private void KillExeTray() + { + try + { + procTray?.Close(); + procTray?.Dispose(); + + foreach (var item in Process.GetProcessesByName($"{mainExeName}.tray.win")) + { + item.Kill(); + } + } + catch (Exception) + { + } + finally + { + procTray = null; + } + } + + + public void RestartService() + { + try + { + KillExe(); + KillExeTray(); + + Environment.Exit(1); + } + catch (Exception) + { + } + } } } diff --git a/linker.tray.win/default.aproj b/linker.tray.win/default.aproj index 817e5bab..ff295aaf 100644 --- a/linker.tray.win/default.aproj +++ b/linker.tray.win/default.aproj @@ -1,5 +1,5 @@  - + diff --git a/linker.tray.win/dist/linker.tray.win.exe b/linker.tray.win/dist/linker.tray.win.exe index 39bc99ba4829efe8ac3f0fb3fdc48bac76bac83a..9f1e6b639eaa0f0fc62517665879a2f7b2bef182 100644 GIT binary patch delta 22997 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 delta 17619 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 HlJ5Tiweq(E diff --git a/linker.tray.win/main.aardio b/linker.tray.win/main.aardio index 464a4681..470fa4c8 100644 --- a/linker.tray.win/main.aardio +++ b/linker.tray.win/main.aardio @@ -78,12 +78,23 @@ mainForm.showPopmenu = function(){ }); } + + +mainForm.failureService = function() +{ + import process.popen; + var prcs = process.popen.cmd("sc failure " + mainForm.serviceName +" reset= 0 actions= restart/3000/restart/3000/restart/3000") + prcs.readAll(); +} + mainForm.checkService = function(){ import service; mainForm.btnInstall.text = service.isExist(mainForm.serviceName) ? "卸载服务" : "安装服务"; mainForm.btnRun.text = service.isRunning(mainForm.serviceName) ? "停止服务" : "运行服务"; mainForm.showPopmenu(); mainForm.runAsTaskCheck(); + + mainForm.failureService(); } mainForm.btnCheck.oncommand = function(id,event){ mainForm.checkService(); diff --git a/linker/plugins/updater/UpdaterTransfer.cs b/linker/plugins/updater/UpdaterTransfer.cs index b2fb6ebb..15cd1558 100644 --- a/linker/plugins/updater/UpdaterTransfer.cs +++ b/linker/plugins/updater/UpdaterTransfer.cs @@ -188,6 +188,7 @@ namespace linker.plugins.updater } catch (Exception) { + continue; } } @@ -272,25 +273,7 @@ namespace linker.plugins.updater private void StartClearTempFile() { - if (OperatingSystem.IsWindows()) - { - Process[] trays = Process.GetProcessesByName("linker.tray.win"); - if (trays.Length > 0) - { - foreach (var tray in trays) - { - tray.Kill(); - } - CommandHelper.Windows(string.Empty, new string[] { "start linker.tray.win.exe --task=1" }); - } - } - ClearTempFile(); - - if (File.Exists("linker.service.exe.temp")) - { - CommandHelper.Windows(string.Empty, new string[] { "sc stop linker.service & sc start linker.service" }); - } } private void ClearTempFile(string path = "./") {