From 314f11d73d924d8ff8340fb989a545149850dfda Mon Sep 17 00:00:00 2001 From: ruki Date: Tue, 5 Apr 2022 23:45:59 +0800 Subject: stop server --- xmake/modules/private/service/server.lua | 3 +++ xmake/modules/private/service/stop_service.lua | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/xmake/modules/private/service/server.lua b/xmake/modules/private/service/server.lua index a4ce80706..8c4615bab 100644 --- a/xmake/modules/private/service/server.lua +++ b/xmake/modules/private/service/server.lua @@ -74,6 +74,9 @@ function server:runloop() raise("%s: has been started!", self) end + -- save the current pid for stopping service + io.writefile(self:pidfile(), os.getpid()) + -- run loop local sock = socket.bind(self:addr(), self:port()) sock:listen(100) diff --git a/xmake/modules/private/service/stop_service.lua b/xmake/modules/private/service/stop_service.lua index c99545dbb..5e9ca34b9 100644 --- a/xmake/modules/private/service/stop_service.lua +++ b/xmake/modules/private/service/stop_service.lua @@ -28,8 +28,16 @@ function _stop_remote_build_server(...) local pid = io.readfile(pidfile) if pid then pid = pid:trim() - print("stop pid: %s", pid) + try { function () + if is_host("windows") then + os.run("taskkill /f /t /pid %s", pid) + else + os.run("kill -9 %s", pid) + end + print("remote_build_server[%s]: stopped", pid) + end} end + os.rm(pidfile) end end -- cgit v1.3.1