diff options
| author | ruki <[email protected]> | 2022-04-05 23:45:59 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-04-05 23:45:59 +0800 |
| commit | 314f11d73d924d8ff8340fb989a545149850dfda (patch) | |
| tree | 87cca329570d70f33eea1a0733342086d0559b90 | |
| parent | c7e96adbab7d833ca63ac4fb73061f9949a46de0 (diff) | |
stop server
| -rw-r--r-- | xmake/modules/private/service/server.lua | 3 | ||||
| -rw-r--r-- | xmake/modules/private/service/stop_service.lua | 10 |
2 files changed, 12 insertions, 1 deletions
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 |
